delete 外键属性报错
老师您好 当一个数据库中有两个表 (例如 student表 和course表 通过学号连接 在course表中sno是外键) 当我依据student表中的sno属性删除该学生的时候会 报出 不允许删除父表(student)的sno属性的 错误!
请问:
1、怎么回事?
2、该怎么解决呢?
老师您好 当一个数据库中有两个表 (例如 student表 和course表 通过学号连接 在course表中sno是外键) 当我依据student表中的sno属性删除该学生的时候会 报出 不允许删除父表(student)的sno属性的 错误!
请问:
1、怎么回事?
2、该怎么解决呢?
2017-05-17
当删除父节点时,由数据库来帮助删除子节点,这样就不用我们显示地写代码先删子节点,再删父节点了。
第一步:删除原有的外键约束
ALTER TABLE child_table DROP FOREIGN KEY `FK_Reference_2` ;
第二步:添加新的外键约束,增加ON DELETE CASCADE
ALTER TABLE child_table
ADD CONSTRAINT `FK_Reference_2`
FOREIGN KEY (`parent_id` )
REFERENCES parent_table (`parent_id` )
ON DELETE CASCADE
ON UPDATE RESTRICT;
这样,就可以达到删除父节点的时候,自动删除子节点的目的了。
举报