2014-11-30 2 views
0

는 기본 및 외래 키를 삭제할 수 없습니다 삭제할 ​​수 없습니다, 그것은 간단한 테이블이다하지만 난외국 및 기본 키

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 
+0

제약 조건이 있는지 확인하십시오. SELECT * FROM user_cons_columns WHERE table_name = '학생'; – kamoor

+0

처음으로이 명령을 사용합니다. 일단 실행하면 결과가 나타납니다. owner-constraint_name - table_name - column_name - position 그게 무슨 뜻입니까! – osama

+0

즉 제약 조건이 생성되지 않았다는 의미입니다. 또는 이미 한 번 삭제하고 다시 삭제하려고 시도하면 – kamoor

답변

0

당신 SQL 명령이 오류가 제대로 표시하지 왜. 다음 명령을 사용하여 제한 조건이 존재하는지 확인할 수 있습니다.

SELECT * FROM user_cons_columns WHERE table_name = 'STUDENT' 

결과가 반환되지 않으면 제약 조건을 만들지 않았거나 이미 삭제 된 것입니다. 동일한 alter 명령을 두 번 이상 다시 실행하려고 시도했을 수 있습니다.

+1

더 나은 대문자 '학생'... – Glenn

+0

제약 조건과 새 테이블을 만들려고했지만 그래도 SELECT constraint_name FROM user_cons_columns where table_name = 'student' 왜이 문제가 있고 어떻게 고쳐야할지 모르겠다. – osama

+0

@osama, ronin은 SQL에서 오타가 있음을 지적했다. 선택할 때 항상 대문자를 사용해야한다. 이 테이블에 나는 대답을 적절하게 업데이트했습니다. – kamoor