MySQL假设基于多值插入和第一个ID的自动递增ID

Posted

技术标签:

【中文标题】MySQL假设基于多值插入和第一个ID的自动递增ID【英文标题】:MySQL Assuming autoincremented IDs based on multi value insert and first id 【发布时间】:2012-07-26 15:49:36 【问题描述】:

只是想被比我更了解 mysql 的人淘汰

我执行 MySQL 插入,在一个查询中插入 10 行。然后当你得到 MySQL 的最后一个插入 ID 时,它会给你第一个插入 ID 的 ID。

假设其他 ID 连续是 insert_id - insert_id+9 是否安全?或者有什么可能的方式不能证明是这种情况?

谢谢

【问题讨论】:

【参考方案1】:

是的,有可能并非总是如此。

使用innodb_autoinc_lock_mode = 2,可以为单个 INSERT 语句插入的行分配不连续的 AUTO_INCREMENT 值(当并发 INSERT 语句正在运行时。)

http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html

【讨论】:

非常感谢,我很高兴默认值是 innodb_autoinc_lock_mode =1!现货参考,我很感激它

以上是关于MySQL假设基于多值插入和第一个ID的自动递增ID的主要内容,如果未能解决你的问题,请参考以下文章

PHP mySQL - 将新记录插入表中,主键自动递增

使用 PDO 插入时获取自动递增行 ID [重复]

使用 Entity Framework 5 将特定 id 插入 MySQL 中的自动递增字段

使用 Entity Framework 5 将特定 id 插入 MySQL 中的自动递增字段

在mysql中获取自动递增行ID的时间复杂度

使用 PDO for MySQL 时存储自动递增的 ID