删除表A中的一列 出错 提示有外键关系无法删除 如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除表A中的一列 出错 提示有外键关系无法删除 如何解决?相关的知识,希望对你有一定的参考价值。

表A与表B 表C 有外键关系 如何做到删除表A中的一列时同时删除表B及表C中的相关列?

参考技术A >删除表A中的一列 出错 提示有外键关系无法删除 如何解决?
你用的是TRUNCATE吧?用DELETE就行了,不用管关联数据。

〉表A与表B 表C 有外键关系 如何做到删除表A中的一列时同时删除表B及表C中的相关列?

没有办法能同时做到这两点的。
参考技术B 用触发器解决啦
比如B,C中分别有Bcol,Ccol在A中有约束
create or replace trigger A_trigger
after delete on A
for each row
begin
delete from B where Bcol=:old.Bcol;
delete from C where Ccol=:old.Ccol;
end;
这样就OK啦;
参考技术C 最笨的办法是,先把B和C表中的相关联的数据删除后,再删除A表中的数据

如果想做到同时删除,需要写一个存储过程.本回答被提问者采纳
参考技术D 在你的语句后加 cascade constriants 试试 第5个回答  2008-10-17 用存储过程

MySQL 如何删除有外键约束的表数据

在MySQL中删除一张表或一条数据的时候,出现
[Err] 1451 -Cannot deleteorupdatea parent row:
aforeignkeyconstraintfails (...)

这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

禁用外键约束,我们可以使用:

SET FOREIGN_KEY_CHECKS=0;

然后再删除数据

启动外键约束,我们可以使用:
SET FOREIGN_KEY_CHECKS=1;

查看当前FOREIGN_KEY_CHECKS的值,可用如下命令:
SELECT @@FOREIGN_KEY_CHECKS;

以上是关于删除表A中的一列 出错 提示有外键关系无法删除 如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除有外键的mysql记录

MYSQL有外键无法删除

有外键约束的时候我们应该怎么样写入数据呢

有外键约束的表,删除父表的数据,会出现哪几种情况?

mysql如何删除一个外键

Oracle删除表时候有外键 不能删除