INSERT更改auto_increment,但UPDATE不会更改auto_increment?

时间:2013-03-15 11:20:53

标签: mysql sql

我们有一张桌子:

id int(11) auto_increment
name varchar(255)

auto_increment等于1。 插入行:

INSERT INTO `projects` ( `id` , `name`) VALUES ('350',  'project one');

现在auto_increment等于351。 更新行:

UPDATE `projects` SET `id` = '351' WHERE `id` = 350 LIMIT 1 ;

auto_increment仍然等于351.如果尝试插入一行,我们会收到错误:

#1062 - Duplicate entry '351' for key 1 

我们如何看到INSERT更改auto_increment和UPDATE不会更改auto_increment

我的目标是更新行并设置id大于auto_increment

怎么做?

1 个答案:

答案 0 :(得分:1)

首先,您为什么要设置自动增量值?让它完成它的工作(线索 - 它是自动的)。

所以最好的解决方案是当你插入一行时,让自动增量为你选择合适的值,并让该值成为该行生命周期的不变量。

否则只需从表定义中删除auto_increment位并自行实现适当的系统。