我有两张桌子,一张是父母和小孩。父表具有主要约束,并且子表具有外键约束。现在我想删除Parent表而不删除或删除子表上的约束。
我尝试在父表和子表上禁用约束,并尝试删除父表。但我仍然无法删除父表。
如果删除父删除的主要约束,那么它也会删除子表上的外键约束。
请有人帮我解决。
感谢。
答案 0 :(得分:0)
如果您的子表具有外键约束,则不能删除父表,除非您指定CASCADE CONSTRAINTS子句:
DROP TABLE P CASCADE CONSTRAINTS;
此命令也会删除FK约束。
答案 1 :(得分:0)
删除表必然会删除与此表相关的所有约束。如果此表引用了表,则必须先删除这些约束,以避免违反规则。
* oracle文档说:* http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables010.htm#ADMIN01505
以下语句删除了t表:
DROP TABLE t;
如果要删除的表包含其他表的外键引用的任何主键或唯一键,并且您打算删除子表的FOREIGN KEY约束,则在DROP TABLE语句中包含CASCADE子句,如下所示:
DROP TABLE t CASCADE CONSTRAINTS;
答案 2 :(得分:0)
很奇怪......如果你正确地禁用了约束,你应该能够删除父表而没有任何错误。
:|