マスター表を作成します。クラス
、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)