当想要初始化mysql自增ID时可以执行 alter table testTable drop id; alter table testTable add id bigint primary key not null auto_increment first; 没有外键的表可以直接这样操作,不影响原有数据,添加后,ID会自动自增覆盖原有数据。 如果表 testTable 有外键关联,且主表(example_table)与次表(example_table_ext)用同一个字段做ID(example_table_id)。 则删除主键时mysql会报错: MySQL Cannot drop index needed in a foreign key constraint。 这时要按照如下步骤执行 删除次表关联外键->删除次表自增ID->添加次表自增ID->删除主表自增ID->添加主表自增ID->添加次表关联外键 删除和添加主表自增ID的步骤是必须的,否则添加次表关联外键时会报错。以下为代码: ALTER TABLE example_table_ext DROP FOREIGN KEY fk_example_table_ext; ALTER TABLE example_table_ext DROP example_table_id; ALTER TABLE example_table_ext ADD example_table_id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT FIRST; ALTER TABLE example_table DROP example_table_id; ALTER TABLE example_table ADD example_table_id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT FIRST; ALTER TABLE example_table_ext ADD CONSTRAINT `fk_example_table_ext` FOREIGN KEY (`example_table_id`) REFERENCES `example_table` (`example_table_id`); 文章导航 A simple F5 load balancing function implemented by JAVA code MySQLテーブルに外部キー関連付けがある場合に自動インクリメントIDを初期化する方法