create table t1(ider number null);
表现如下:
create table t1(ider number check (ider is null));
或
create table t1(ider number default null);
答案 0 :(得分:11)
你的两个假设都没有。
Oracle在列规范中将NULL
视为显式缺少NOT NULL约束。它是CREATE TABLE
语句中的(误导性)无操作,但不一定在ALTER TABLE
语句中,它可以撤销先前存在的约束。
CREATE TABLE t(col1 TYPE NOT NULL);
ALTER TABLE t MODIFY col1 NULL; -- Now the `NOT NULL` constraint has been dropped
因此,当您使用CREATE TABLE t(c INTEGER NULL)
时,并不意味着c
应始终为空,也不表示c
具有默认值NULL
。这只是意味着c
为空是正确的。
答案 1 :(得分:0)
例如,以下作品..
create table #tempe (
valor int null
)
insert into #tempe values(null)
select * from #tempe
drop table #tempe