0

我们有一张桌子:

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不是 changes auto_increment

我的目标是更新 row 并设置id更大 then auto_increment

怎么做?

4

1 回答 1

1

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

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

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

于 2013-03-15T11:31:18.873 回答