MySQL:将AUTO_INCREMENT增加一个固定值ONCE

时间:2015-05-28 23:17:03

标签: mysql auto-increment

我试图更新几个表现有主键(1000班)。我知道我可以使用以下内容获取ID:

SELECT `AUTO_INCREMENT` FROM  INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME = '$table'

然后我可以像这样更新:

ALTER TABLE $table AUTO_INCREMENT = $old_ai_value+1000

但是有更好,更短的方式吗?我猜到了

ALTER TABLE $table AUTO_INCREMENT = AUTO_INCREMENT+1000

但这只会产生错误。

1 个答案:

答案 0 :(得分:2)

您需要从PHP执行两个查询。首先使用您显示的AUTO_INCREMENT查询获取旧的SELECT值。在PHP中添加1000,然后将其用作ALTER TABLE查询中的值。

您无法在SQL中完全执行此操作,因为AUTO_INCREMENT =中的ALTER TABLE参数未被计算为表达式,它必须是文字整数。

如果您尝试更新现有行的ID,而不是设置用于新行的ID,则可以执行以下操作:

UPDATE $table
SET id = id + 1000

但是,这也将更新自动增量,因此将来的行将获得1000以上的ID,他们不会填补空白。自动增量始终应该高于任何现有ID。