ホームページ > データベース > mysql チュートリアル > 外部キー制約を使用するときに MySQL Errno 150 エラーを回避するにはどうすればよいですか?

外部キー制約を使用するときに MySQL Errno 150 エラーを回避するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-21 19:37:16
オリジナル
690 人が閲覧しました

How to Avoid MySQL Errno 150 Errors When Using Foreign Key Constraints?

MySQL 外部キー制約: Errno 150 エラーの回避

他のテーブルを参照する外部キーを使用して MySQL でテーブルを作成しているときに、エラー番号: 150 エラー。この問題を解決するには、次のガイドラインに従うことが重要です:

  1. テーブルの順序を確認する: 外部キーを使用して子テーブルを作成する前に、主キーを含む親テーブルを定義します。 Reference.
  2. 外部キーのサポートを有効にする: 親テーブルと子テーブルの両方で、通常は次を使用して外部キー制約をサポートする必要があります。 InnoDB ストレージ エンジン。
  3. 左端の列キー: 親テーブルで参照される列は、キーの左端の列である必要があり、理想的には PRIMARY KEY または UNIQUE KEY です。
  4. 主キーの順序の一致: FK 定義は、次の PK 定義と一致する必要があります。列の順序とデータ型の点。
  5. 適切なデータ配置: 親テーブルの PK 列と子テーブルの FK 列は、データ型と照合順序の点で一致する必要があります。
  6. 既存のデータの互換性: 子テーブルにデータが含まれている場合、各 FK 列の値が、対応する値と一致することを確認します。親テーブルの PK 列。
  7. 一時テーブルまたはパーティション化されたテーブルを避ける: 外部キー制約は、TEMPORARY テーブルまたは PARTITIONED テーブルには定義できません。
  8. Null 許容列: ON DELETE SET NULL オプションを使用する場合、FK 列はnullable.
  9. 一意の制約名: 競合を避けるために、外部キー制約にはスキーマ全体で一意の名前が必要です。
  10. 依存外部キー:不正な形式の FK が、親テーブルの同じフィールドを参照する別のテーブルに存在します。新しい FK を作成する前に一貫性を確認してください。次のクエリを使用して、問題のある FK を特定します:
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_SCHEMA = 'your_schema_name'
AND CONSTRAINT_NAME <> 'PRIMARY' AND REFERENCED_COLUMN_NAME IS NOT NULL;
ログイン後にコピー

以上が外部キー制約を使用するときに MySQL Errno 150 エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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