Mysql 删除父表中的行时,从子表中删除行

Mysql 删除父表中的行时,从子表中删除行,mysql,sql-delete,alter-table,alter,Mysql,Sql Delete,Alter Table,Alter,我已经在mysql中创建了2个表,如何确保当讲师表中的行被删除时,与NOK相关的行也应该被删除 您需要在NOK表中的DELETE CASCADE上使用 改变 CREATE TABLE LECTURER (LectID VARCHAR(12) NOT NULL, Name VARCHAR(30) NOT NULL, Email VARCHAR(30) NOT NULL, Faculty VARCHAR(20) NOT

我已经在mysql中创建了2个表,如何确保当
讲师
表中的行被删除时,与
NOK
相关的行也应该被删除

您需要在
NOK
表中的DELETE CASCADE上使用

改变

   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));

编辑==

在执行上面的脚本之前,您需要在下面执行,这样您就不会得到任何错误

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

您需要在
NOK
表中的DELETE CASCADE
上使用

改变

   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));

编辑==

在执行上面的脚本之前,您需要在下面执行,这样您就不会得到任何错误

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

但是我被要求用alter table做这件事。。所以我只是在DELETE CASCADE上修改table ADD CONSTRAINT NOK_fkey FOREIGN KEY(LectID)references讲师(LectID)是吗?@sozai如果你已经创建了CONSTRAINT,你需要先删除它。是的,你可以这样做。@sozai好的,你试过执行alter脚本了吗?@sozai,现在你明白了,我的意思了?@sozai不,你只需要删除你要创建的约束。但是我被要求使用alter table来做。。所以我只是在DELETE CASCADE上修改table ADD CONSTRAINT NOK_fkey FOREIGN KEY(LectID)references讲师(LectID)是吗?@sozai如果你已经创建了CONSTRAINT,你需要先删除它。是的,你可以这么做。@sozai好的,你试过执行alter脚本了吗?@sozai,现在你明白了,我的意思了?@sozai不,你只需要删除你要创建的约束。