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`); 

发表回复

Thanks for your support to bet365fans!