Oracle 级联约束

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-07 15:20:291304검색

为什么pk、和col1 不能DROP SQL CREATE TABLE test2 ( 2 pk NUMBER PRIMARY KEY, 3 fk NUMBER, 4 col1 NUMBER, 5 col2 NUMBER, 6 CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test2, 7 CONSTRAINT ck1 CHECK (pk 0 and col1 0), 8 CONSTRAINT ck2

为什么pk、和col1 不能DROP

SQL> CREATE TABLE test2 (
  2      pk NUMBER PRIMARY KEY,
  3      fk NUMBER,
  4      col1 NUMBER,
  5      col2 NUMBER,
  6      CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test2,
  7      CONSTRAINT ck1 CHECK (pk > 0 and col1 > 0),
  8      CONSTRAINT ck2 CHECK (col2 > 0)
  9      )
 10  /                                                                                                                                                                

表已创建。

SQL> ALTER TABLE test2 DROP (pk);
ALTER TABLE test2 DROP (pk)
                        *
第 1 行出现错误:
ORA-12992: 无法删除父项关键字列


SQL> ALTER TABLE test2 DROP (col1);
ALTER TABLE test2 DROP (col1)
                        *
第 1 行出现错误:
ORA-12991: 引用的列处于多列约束条件


SQL> ALTER TABLE test2 DROP (fk);

表已更改。

SQL> alter table test2 drop (col2);

表已更改。

SQL>

实在不理解 ↓

SQL> ALTER TABLE test2 DROP (fk);

表已更改。

SQL> alter table test2 drop (col2);

表已更改。

SQL>

 

为什么pk、和col1 不能DROP
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.