pop*_*ack 2 sql oracle null constraints
create table t1(ider number null);
Run Code Online (Sandbox Code Playgroud)
它表现如下:
create table t1(ider number check (ider is null));
Run Code Online (Sandbox Code Playgroud)
要么
create table t1(ider number default null);
Run Code Online (Sandbox Code Playgroud)
?
Ben*_*oit 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
Run Code Online (Sandbox Code Playgroud)
因此,当您使用CREATE TABLE t(c INTEGER NULL)它并不意味着c应该始终为null,也不意味着它c具有默认值NULL.它只是意味着cnull 是可以的.

| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |