您的位置:首页技术文章
文章详情页

mysql 里边,自增长id,写数据时,是先把数据写进去,然后再给这条数据一个id,还是先给id,然后再把要插入的数据写进去

浏览:31日期:2022-06-12 17:49:45

问题描述

mysql 里边,自动增长的id , 现在如果往里边写一条数据,里边的具体过程,是先把数据写进去,然后再给这条数据一个id,还是先给id,然后再把要插入的数据写进去。好奇一下

问题解答

回答1:

MYSQL已经算好了下次需要填写的自增ID了

如下图所示.数据库有62行,自增值到了63.

mysql 里边,自增长id,写数据时,是先把数据写进去,然后再给这条数据一个id,还是先给id,然后再把要插入的数据写进去

未指定ID则MYSQL自己填写,如果填写小于自动递增,则报错!如果填写大于自动递增,则自动递增变成填写数+1

获取插入ID:MYSQLI : mysqli_insert_id方法PDO : PDO::lastInsertId方法MYSQL : mysql_insert_id方法

其中MYSQL方式连接数据库已弃用,可能在未来版本移除

下面这条SQL可以实现你要的需求,但是我不确定这么干好不好,还有数据结构设置成这样,真的好吗?

INSERT INTO sta_log_fun(`FCNAME`,`STATUS`) VALUES(’WOQU’,(SELECT auto_increment FROM information_schema.`TABLES` WHERE TABLE_SCHEMA=’test2’ AND TABLE_NAME=’sta_log_fun’));

效果如下图:mysql 里边,自增长id,写数据时,是先把数据写进去,然后再给这条数据一个id,还是先给id,然后再把要插入的数据写进去

回答2:

没去研究过,但是我猜想是不是和我们手动插入数据一样,是一同写入的。获取当前表id的最大值,加上设定的自增值,放入数据一同插入。。。。