2017-10-01 7 views
0
CREATE TABLE LECTURER 
    (LectID  VARCHAR(12) NOT NULL,  
    Name VARCHAR(30) NOT NULL, 
    Email  VARCHAR(30) NOT NULL, 
    Faculty VARCHAR(20) NOT NULL, 
CONSTRAINT LECTURER_pkey PRIMARY KEY (LectID)); 


CREATE TABLE NOK 
(LectID VARCHAR(12) NOT NULL, 
Name  VARCHAR(30) NOT NULL, 
DOB  DATE   NOT NULL, 
CONSTRAINT NOK_pkey PRIMARY KEY (LectID, Name, DOB), 
CONSTRAINT NOK_fkey FOREIGN KEY (LectID) references LECTURER (LectID)); 

を削除されるときに私はLECTURERテーブルから行がNOKから関連する行を削除しますときに私は、確認することができますどのように、MySQLで2テーブルを作成しても削除されますでしょうか?削除行、親テーブルから行が

答えて

2

テーブルでON DELETE CASCADEを使用する必要があります。

変更

CONSTRAINT NOK_fkey FOREIGN KEY (LectID) references LECTURER (LectID) 

CONSTRAINT NOK_fkey FOREIGN KEY (LectID) references LECTURER (LectID) 
ON DELETE CASCADE 

編集==

に上記のスクリプトを実行する前に、あなたはすべてのエラーを取得しないように、以下を実行する必要があります。

ALTER TABLE NOK DROP FOREIGN KEY NOK_fkey; 
+0

しかし、私は、ALTER TABLEを使用してそれを実行するために必要とされた。..ので、私はちょうどテーブルを変更するDELETE CASCADEの制約NOK_fkey FOREIGN KEY(LectID)参照講師(LectID) をADDはありますか? – sozai

+0

@sozaiあなたが既に制約を作成している場合は、まずそれを削除する必要があります。そして、はい、あなたはそれを行うことができます。 – Ravi

+0

@sozai ok、あなたはalterスクリプトを実行しようとしましたか? – Ravi

関連する問題