我使用ORACLE,我知道你不能DROP一个非空约束的列。
您必须先将其更改为可以为空,然后您可以删除它。
如果列不是主键或外键,为什么我不能删除它?
有人可以解释这种行为的原因吗?
答案 0 :(得分:3)
我使用ORACLE,我知道你不能DROP一个非空约束的列。
不,你错了。您可以删除 NOT NULL 列。
如果列不是主键或外键,为什么我不能删除它?
是的,你可以。
请参阅:
SQL> CREATE TABLE t(a number, b varchar2(10) not null);
Table created.
SQL>
SQL> INSERT INTO t(A, b) VALUES(1, 'one');
1 row created.
SQL>
SQL> SELECT * FROM t;
A B
---------- ----------
1 one
SQL>
SQL> ALTER TABLE t DROP COLUMN b;
Table altered.
SQL>
SQL> DESC t;
Name Null? Type
----------------------------------------- -------- ------
A NUMBER
SQL>
SQL> SELECT * FROM t;
A
----------
1
SQL>