我不明白为什么 Oracle 接受
CREATE TABLE t1 (id NUMBER DEFAULT 1 NOT NULL)
但不是
CREATE TABLE t1 (id NUMBER NOT NULL DEFAULT 1)
根据我的理解,组件 NOT NULL、DEFAULT、UNIQUE、PRIMARY KEY.. 不必采用特殊顺序,还是我错了?
你理解错了。
列定义(来自CREATE TABLE)表示DEFAULT先行,然后是内联约束(NOT NULL):
column [ datatype [ COLLATE column_collation_name ] ]
[ SORT ] [ VISIBLE | INVISIBLE ]
[ DEFAULT [ ON NULL ] expr | identity_clause ] --> DEFAULT goes before ...
[ ENCRYPT encryption_spec ]
[ { inline_constraint }... --> ... incline constraint
| inline_ref_constraint
]