ホームページ > データベース > mysql チュートリアル > テーブルの作成時に MySQL エラー 1022 (重複キー) が発生するのはなぜですか?

テーブルの作成時に MySQL エラー 1022 (重複キー) が発生するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-30 17:00:12
オリジナル
302 人が閲覧しました

Why Am I Getting a MySQL Error 1022 (Duplicate Key) When Creating a Table?

書き込めません。テーブルの作成中にキーが重複

主キー エントリが重複しているため、新しいテーブルを作成しようとするとエラー 1022 が発生します。クエリを確認した後でも、重複のソースを特定するのが難しい場合があります。さらに調査してみましょう。

指定したクエリには、「userId」列の外部キーとして「iduser」という名前の制約が含まれています。さらに、「circleId」列に「idcategory」という名前の制約を指定します。これらの制約名が問題の根本であると思われます。

制約と重複

MySQL の制約は、特定のテーブルだけでなく、データベース全体で一意である必要があります。作成または変更されています。したがって、「iduser」または「idcategory」制約名を使用する他のテーブルまたはインデックスがデータベース内にすでに存在する可能性があります。この競合により、重複キー エラーが発生します。

重複制約の特定

これらの制約が現在使用されている場所を確認するには、次のクエリを実行します。

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
ログイン後にコピー

このクエリは、「iduser」および「idcategory」制約が適用されているテーブルとスキーマを表示します。

解決策

エラーを解決するには、重複した制約の名前を変更する必要があります。 「userId」列の外部キー制約には「fk_user」など、現在のテーブルに固有の一意の名前を使用することを検討してください。制約の名前が変更され、クエリが更新されたら、何もしなくてもテーブルを正常に作成できるはずです。重複キーエラー。

以上がテーブルの作成時に MySQL エラー 1022 (重複キー) が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート