搜索

首页  >  问答  >  正文

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

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

伊谢尔伦伊谢尔伦2754 天前579

全部回复(2)我来回复

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:53:19

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

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

    未指定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'));

    效果如下图:

    回复
    0
  • PHP中文网

    PHP中文网2017-05-18 10:53:19

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

    回复
    0
  • 取消回复