Navicat for MySQL でマルチテーブル リンクを確立する方法

爱喝马黛茶的安东尼
リリース: 2019-08-05 09:28:46
オリジナル
12073 人が閲覧しました

Navicat for MySQL でマルチテーブル リンクを確立する方法

2 つのテーブル間に多対多の関係を構築します。クリーン データ テーブル (clean_data テーブル) とユーザー テーブル (ユーザー テーブル) は多対多の関係を確立します。以下の図に示すように:

Navicat for MySQL でマルチテーブル リンクを確立する方法

1. テーブル

を作成します。navicat を開き、clean_data テーブルと user という 3 つのテーブルを作成します。 table 、および 2 つのテーブル間の関係テーブル (clean_data_user テーブル)。

テーブルの構造は次のとおりです。

Navicat for MySQL でマルチテーブル リンクを確立する方法

Navicat for MySQL でマルチテーブル リンクを確立する方法

Navicat for MySQL でマルチテーブル リンクを確立する方法

##関連する推奨事項:Navicat for mysql グラフィック チュートリアル >>

2. 外部キーの確立

2.1 まず、clean_data_user テーブルに関連付ける 2 つのフィールド cln_dt_id と user_id を設定します。主キーとして。次の図に示すように:

Navicat for MySQL でマルチテーブル リンクを確立する方法

#2.2 [外部キー] ボタンをクリックして、外部キー関係を確立します。フィールドの名前から想像できるように、cln_dt_id は clean_data テーブルの ID に関連付けられ、user_id は user テーブルの ID に関連付けられます。以下の図に示すように:

Navicat for MySQL でマルチテーブル リンクを確立する方法

注:

1. データベース内で多対多の関係を確立する場合テーブルでは、まず主キーを確立する必要があります。最初に外部キーが確立されていない場合、以下の図 6 に示すように、エラー 1215 が発生します。この問題でほぼ 2 時間を無駄にしました。本当にそんなはずはありません。

##*

後から、主キーを作成する必要はなく、cln_td_id と user_id のインデックスを作成するだけでよいことがわかりました。

**

Navicat for MySQL でマルチテーブル リンクを確立する方法それでは、1215 エラーの理由を整理しましょう:

MySQL で外部キーを作成する際のエラー: 1215外部キー制約

1を追加できません。2 つのフィールドの型またはサイズが厳密には一致しません。このうち、2 つの単語 short は int(6) と int(7) であり、一致しません。 1 つは署名なし (未署名)、もう 1 つは署名付きで、これも一致しません。

2. 外部キーを設定しようとしているフィールドにはインデックスが付けられていないか、主キーではありません。そのうちの 1 つが主キーではない場合は、まずそのインデックスを作成する必要があります。

3. テーブルのうち 1 つまたは 2 つは MyISAM エンジンのテーブルです。外部キー制約を使用する場合、テーブルは InnoDB エンジンのものである必要があります (実際、両方のテーブルが MyISAM エンジンのものであれば、このエラーはまったく発生しませんが、外部キーは生成されず、インデックスのみが生成されます)テーブルのエンジンタイプを確認する必要があります。

4. 外部キーの名前を繰り返すことはできません。

5. ON DELETE SET NULL を設定している可能性がありますが、関連するキー フィールドは NOTS NULL 値に設定されています。カスケード属性値を変更するか、null を許可するようにフィールド属性を設定することで、問題を解決できる可能性があります。

6. Charset オプションと Collate オプションがテーブル レベルとフィールド レベルで一貫していることを確認してください。

7. 外部キーのデフォルト値 (default=0 など) を設定している可能性があります。

8. ALTER ステートメントに構文エラーがあります。

以上がNavicat for MySQL でマルチテーブル リンクを確立する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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