「書き込めません。テーブル内のキーが重複しています」エラーのトラブルシューティング
CREATE TABLE コマンドの実行時に 1022 エラーが発生した場合重複キーがある場合は、クエリを検査してソースを特定することが重要です。 duplication.
この例では、エラー メッセージは「iduser」および「idcategory」という名前の制約に関連する問題を示しています。おそらく、これらの名前の制約がデータベースに定義されています。
重複した制約の解決
この問題を解決するには、重複した制約の名前を変更する必要があります。制約は、作成または変更される特定のテーブルに限定されず、データベース全体で一意である必要があります。
既存の制約の検索
重複した制約が現在どこにあるかを確認するには次のクエリを実行します:
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
このクエリはテーブル スキーマを返します。および各制約が使用されるテーブル名。競合する制約を特定したら、ALTER TABLE コマンドを使用してそれらの名前を変更できます。例:
ALTER TABLE `apptwo`.`usercircle` DROP CONSTRAINT `iduser`; ALTER TABLE `apptwo`.`usercircle` ADD CONSTRAINT `user_constraint` FOREIGN KEY (`userId`) REFERENCES `apptwo`.`user` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION;
以上がMySQL の「書き込めません; テーブル内のキーが重複しています」エラー (1022) を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。