MYSQL表auto_increment

时间:2014-02-20 09:13:25

标签: php mysql auto-increment

当我从一个数据库复制所有表并将它们粘贴到其他数据库时,如何将这些表中的所有auto_increments设置为起始值?是否有可能为这样的事情制作一个PHP脚本?

2 个答案:

答案 0 :(得分:0)

试试这个:

ALTER TABLE test AUTO_INCREMENT = 'startvalue'

<强>条件:     如果table not empty start value必须大于MAX(AUTO_INCREMENT)

答案 1 :(得分:0)

如果AUTO_INCREMENT列是主键,并且您重新排序AUTO_INCREMENT列数据,则与其他表的关系可能有问题。您可以按如下方式导入而不是重新排序AUTO_INCREMENT数据:

  1. 您可以按如下方式禁用新表上的AUTO_INCREMENT: ALTER TABLE [your_table] CHANGE auto_increment_column_name auto_increment_column_name INT(11)NOT NULL

  2. 插入后,您可以启用AUTO_INCREMENT并重新设置,如下所示: ALTER TABLE [your_table] AUTO_INCREMENT = [最大值]

  3. 或者,您必须使用迁移脚本更新所有从属表的外键值。