ホームページ >データベース >mysql チュートリアル >MySQL エラー 1022: テーブル作成時の重複キーのトラブルシューティング方法

MySQL エラー 1022: テーブル作成時の重複キーのトラブルシューティング方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 11:14:14972ブラウズ

How to Troubleshoot MySQL Error 1022: Duplicate Key in Table Creation?

テーブル作成時の重複キー エラー: "エラー 1022" のトラブルシューティング

ユーザーは悪名高い "エラー 1022: 書き込みできません。新しいテーブルを作成しようとすると、「テーブル内のキーが重複しています」というエラーが発生しました。 SQL クエリを調べたところ、重複の原因はすぐにはわかりませんでした。

クエリは、idUserCircle、userId、circleId を含む複数の列を持つ usercircle という名前のテーブルを作成しました。また、idUserCircle の主キーと、userId 列とcircleId 列のユーザー テーブルとサークル テーブルを参照する外部キー制約もそれぞれ指定しました。

競合の特定

キーこのエラーを解決するには、外部キー制約を含む制約がデータベース内だけでなくデータベース全体で一意である必要があることを認識する必要があります。特定のテーブル。したがって、根本的な問題は、データベース内の他の場所で制約名が重複している可能性があります。

解決策

どの制約が競合しているかを判断するには、ユーザーは次のクエリを実行できます。

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');

このクエリは、現在 iduser 制約と idcategory 制約を使用しているテーブルと列を明らかにします。重複した制約の名前を変更することで、ユーザーはエラーを解決し、usercircle テーブルを正常に作成できます。

追加のヒント

  • 制約名が常に同じであることを確認してください。潜在的な競合を避けるために、データベース内で一意です。
  • データベース管理システムや SQL 開発環境などのツールを使用して、制約の管理と潜在的な名前付けの問題を特定します。
  • 外部キー制約はテーブル間の関係を強制することでデータの整合性を提供しますが、一意の制約名も必要であることに注意してください。

以上がMySQL エラー 1022: テーブル作成時の重複キーのトラブルシューティング方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。