Oracle 级联约束
为什么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