在重复键主键自动增量

时间:2014-02-28 11:52:43

标签: php innodb

我在我的一个项目中使用了重复键。但是当所有行都已存在并且没有要更新的数据时,它也会增加auto_increment计数器。所以,之前的auto_increment = 5并且在执行重复键查询后它自动递增auto_increment counter = 6.因此,我在表中的条目变为, id __ 1 2 3 4 6

my.ini中有一个“innodb_autoinc_lock_mode”的解决方案但是没有更改my.ini中的设置,有没有其他方法我只能使用php代码管理自动增量?


id  name    email
1   name1   name1@mail.com
3   name3   name3@mail.com

我有这张桌子。其中id是primarykey,email是uniqueId。现在,我使用值(name1,name1 @ mail.com)运行重复键更新,因此,此查询将不会更新或创建新条目,因为它已经存在。但是auto_increment计数器变为3.因此,对于下一个插入操作,新的id是3。

1 个答案:

答案 0 :(得分:0)

如果您想使用php代码来管理您的ID,那么根本不要使用自动增量。

通过递增max id值手动设置id(通过使用select max()...获得。)。