いくつかの方法で外部キーを追加するには、mysqlデータベース

マスター表を作成します。クラス

、INT PRIMARY KEY AUTO_INCREMENT CID TABLEクラスを(CREATE

SNAME VARCHAR(15)NOT NULL)

INSERT INTOクラス値(NULL、 '第六年生のクラス')
INSERT INTOクラス値(NULL、 '6つのグレードクラス')

最初:// 1は、プロパティ値の後ろに直接(問題のビット)を追加しました

TABLE学生を作成します(INT AUTO_INCREMENT、SID
SNAME VARCHAR(10)NOT NULL、
s_cid INT参照クラス(CID)、
PRIMARY KEY(SID)を
);

//テストデータの追加
INSERT INTO学生VALUES(NULL、 '王のハンマー'、2)
INSERT INTO学生VALUES(NULL、 'Huhanサン'、3)//制約が原因不明で、有効ではありません
横たわっINSERT INTO学生VALUES(NULL、」トラフ」、4)//テストを信じていません

実際にそれを追加した理由、この方法では、テストはWTF?無駄にオンラインBaiduは、自習グループには、一時的にここに棚上げする返信を知っていません。

第二://追加のSQLステートメントの末尾に

TABLE学生を作成する(
INT AUTO_INCREMENT、SID
SNAME VARCHAR(10)、
s_cid INT、
PRIMARY KEY(SID)、
FOREIGN KEY(s_cid)を参照クラス(CID)は、
);

//挿入テストデータ
INSERT INTO学生VALUES(NULL、 '王のハンマー'、2)
INSERT INTO学生VALUES(NULL、 '胡閑山'、3)//挿入が力に制約が失敗しました

有効にする外部キー制約

第三:使用//3.fk

これは、手動で収集要約、理解が、場所にいくつかのテストではないか、少し理解し、fk_子テーブルのテーブルにクラスの値です_親テーブル

TABLE学生を作成します(INT AUTO_INCREMENT、SID
SNAME VARCHAR(10)NOT NULL、
s_cid INT、
PRIMARY KEY(SID)、
CONSTRAINT fk_student_class FOREIGN KEY(s_cid)REFERENCESクラス(CID)を
);

//テストOK波
INSERT INTO学生VALUES(NULL、 '王ハンマー'、2)
INSERT INTO学生値(NULLを、 'フー閑山'、3)//力に失敗した制約インサート

第四:(クラスの内容を教える)外部キーを追加するには、テーブルの建設後// 4

TABLE学生を作成します(INT AUTO_INCREMENT、SID
SNAME VARCHAR(10)NOT NULL、
s_cid INT、
PRIMARY KEY(SID)を
);

//外部キー制約を追加:ALTER TABLE学生ADD FOREIGN KEY(s_cid)REFERENCESクラス(CID);

//テスト
INSERT INTO学生VALUES(NULL、 '王のハンマー'、2)
//制約開始挿入に失敗したINSERT INTO学生VALUES(NULL、 'Huhanサン'、3)

公開された69元の記事 ウォン称賛25 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_40985788/article/details/85918199