为了账号安全,请及时绑定邮箱和手机立即绑定

delete 外键属性报错

老师您好   当一个数据库中有两个表 (例如 student表  和course表  通过学号连接  在course表中sno是外键)   当我依据student表中的sno属性删除该学生的时候会  报出 不允许删除父表(student)的sno属性的  错误!     

请问:

 1、怎么回事?   

 2、该怎么解决呢? 

正在回答

3 回答

当删除父节点时,由数据库来帮助删除子节点,这样就不用我们显示地写代码先删子节点,再删父节点了。
第一步:删除原有的外键约束

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;

这样,就可以达到删除父节点的时候,自动删除子节点的目的了。


0 回复 有任何疑惑可以回复我~

当删除有外键的属性的数据时,需要先把该外键值关联的数据删除掉。这是外键约束的要求。

也就是说删除student表的数据时,必须先把courcse表中通过sno关联的数据删除掉。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

delete 外键属性报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信