以下にいくつかのタイトルのオプションを示します。それぞれが記事の異なる側面を強調しています。 短くて一般的な: * MySQL に外部キー制約を追加できないのはなぜですか? * 外部キー制約 E のトラブルシューティング

Mary-Kate Olsen
リリース: 2024-10-26 16:57:03
オリジナル
880 人が閲覧しました

Here are a few title options, each emphasizing a different aspect of the article:

Short and General:

* Why Can't I Add a Foreign Key Constraint in MySQL? 
* Troubleshooting Foreign Key Constraint Errors in MySQL

More Specific:

* MySQL Foreign Key Con

MySQL の外部キー制約エラー: 根本原因と解決策

エラー「エラー 1215 (HY000): 外部キー制約を追加できません」これは、MySQL の 2 つのテーブル間の外部キー参照を定義するときに発生します。この問題に対処するには、参照フィールドと外部キー フィールドの両方で特定の基準が満たされていることを確認することが重要です。

エンジンの互換性:
両方のフィールドは、次のテーブルに存在する必要があります。同じエンジン、通常は InnoDB。

データ型と長さ:
フィールドのデータ型と長さは同一である必要があります。たとえば、参照されるフィールドが VARCHAR(20) の場合、外部キー フィールドも VARCHAR(20) である必要があります。

Collat​​ion:
フィールドの照合順序は一致する必要があります。同様に、たとえば、utf8.

一意性:
親テーブルの参照フィールドは一意であるか、子テーブルの各行が必ず一致するように PRIMARY KEY として宣言する必要があります。有効な参照。

NULL 制約:
外部キー フィールドで NULL 値が許可される場合、参照されるフィールドでも NULL 値が許可される必要があります。

排他的実行:
特定のシナリオでは、他の同時クエリを行わずに外部キー作成ステートメントを排他的に実行する必要がある場合があります。これは、トランザクションを開始することで実現できます。たとえば、

<code class="sql">BEGIN;
CREATE TABLE course ( ... );
COMMIT;</code>
ログイン後にコピー

追加の手段:

  • Check InnoDB Status: Toより具体的なエラーの詳細を取得するには、SHOW ENGINE INNODB STATUS; を実行します。
  • 外部キー チェックを無効にする: SET FOREIGN_KEY_CHECKS=0; を使用して外部キー チェックを一時的に無効にします。テーブルの作成は許可されますが、外部キー制約が満たされていない場合はデータの挿入が失敗する可能性があります。
  • Use ON DELETE CASCADE / ON UPDATE CASCADE: これらのオプションを使用すると、関連する行が親テーブルの参照フィールドが変更されると、子テーブルは自動的に削除または更新されます。

外部キー制約を確実に作成するには、これらの条件がすべて満たされていることを確認することが不可欠であることを覚えておいてください。

以上が以下にいくつかのタイトルのオプションを示します。それぞれが記事の異なる側面を強調しています。 短くて一般的な: * MySQL に外部キー制約を追加できないのはなぜですか? * 外部キー制約 E のトラブルシューティングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!