河南省网站南京h5网站建设
问题描述
在尝试执行以下SQL语句时,发生错误。
DROP TABLE Course RESTRICT;
执行以上语句后,系统返回了一个错误提示:
[2BP01] ERROR: cannot drop table course because other objects depend on it
详细:constraint sc_cno_fkey on table sc depends on table course
建议:Use DROP ... CASCADE to drop the dependent objects too.


原因分析
尝试删除的Course表被其他对象依赖,所以直接删除会导致错误。在这里,sc表的sc_cno_fkey约束依赖于Course表。
解决方案
方法1
首先删除所有引用Course表的表,然后再删除Course表。
DROP TABLE SC RESTRICT;
DROP TABLE Student RESTRICT;
DROP TABLE Course RESTRICT;

方法2
使用DROP TABLE CASCADE语句,连带删除所有依赖于Course表的对象。
DROP TABLE Course CASCADE;

如果不希望删除依赖于Course表的其他对象,应该选择第一种方法。如果不介意删除这些对象,或者这些对象不再需要,可以选择第二种方法。
