它可以通过以下方式设置/重置AUTO_INCREMENTMySQL表的值
AUTO_INCREMENT
ALTER TABLE some_table AUTO_INCREMENT = 1000
但是我需要设置AUTO_INCREMENT其现有值(以修复MM复制),例如:
ALTER TABLE some_table SET AUTO_INCREMENT = AUTO_INCREMENT + 1 这不起作用
ALTER TABLE some_table SET AUTO_INCREMENT = AUTO_INCREMENT + 1
好吧,实际上,我想对数据库中的所有表运行此查询。但这实际上不是很关键。
除了手动运行查询之外,我找不到解决该问题的方法。您能否提出一些建议或向我指出一些想法。
谢谢
使用:
ALTER TABLE some_table AUTO_INCREMENT = 0
…将根据auto_increment列中现有的最高值将auto_increment值重置为下一个值。
要在所有表上运行该表,您将需要使用MySQL的动态SQL语法,称为PreparedStatements,因为您无法为变量表提供ALTER TABLE语句的表名。您必须遍历以下来源的输出:
SELECT t.table_name FROM INFORMATION_SCHEMA.TABLES t WHERE t.table_schema = 'your_database_name'
…对每个表运行上面的ALTER TABLE语句。