Sql 无法删除外键和主键
无法删除主键和外键,这是一个简单的表,但我不知道为什么会出现此错误Sql 无法删除外键和主键,sql,oracle,Sql,Oracle,无法删除主键和外键,这是一个简单的表,但我不知道为什么会出现此错误 create table student ( s_ID int , S_NAMe varchar2 (10), S_major varchar2(20), D_ID number (10) , Constraint PK_s_ID primary key (s_ID), constraint FK_D_ID foreign key (D_ID) references dep (D
create table student (
s_ID int ,
S_NAMe varchar2 (10),
S_major varchar2(20),
D_ID number (10) ,
Constraint PK_s_ID primary key (s_ID),
constraint FK_D_ID foreign key (D_ID) references dep (D_ID) );
ALTER TABLE student DROP CONSTRAINT PK_s_ID cascade;
alter table student drop constraint FK_D_ID;
ERROR at line 1:
ORA-02443: Cannot drop constraint - nonexistent constraint
您的SQL命令看起来是正确的。可以使用以下命令确保约束存在
SELECT * FROM user_cons_columns WHERE table_name = 'STUDENT'
如果它不返回任何结果,则表示您没有创建约束或已删除约束。您可能多次尝试重新运行同一alter命令。请确保约束存在。从user_cons_列中选择*,其中table_name='student';这是我第一次使用这个命令,一旦我运行它,我就会得到这些结果所有者-约束\u名称-表\u名称-列\u名称-位置这是什么意思!这意味着没有创建约束。或者你已经删除了一次,并试图再次删除。如果约束存在,我会在结果中找到它的名称!将立即尝试在执行删除之前,向我们显示相同约束的存在。尝试使用约束创建新表,但仍然没有从用户列中选择约束名称的约束,其中表名称='student'不知道为什么会出现此问题以及如何修复it@osama,ronin指出了SQL中的一个输入错误,在这张表上选择时,您需要始终使用大写字母,我相应地更新了答案,明白了,非常感谢您的帮助