create table students (
tnum char(9) PRIMARY KEY CHECK (tnum SIMILAR TO 'T[:DIGIT:]{8}'),
ssn varchar(9) UNIQUE NOT NULL CHECK (ssn SIMILAR TO '[:DIGIT:]{9}'),
first_name varchar(20) NOT NULL,
credits numeric(3, 0) NOT NULL DEFAULT 0
);
为什么这不起作用?如果我删除"默认0"它可以工作,但如果我离开"默认为0"在它没有工作。那么默认约束的正确语法是什么?
答案 0 :(得分:2)
尝试更改语法的顺序:
credits numeric(3, 0) DEFAULT 0 NOT NULL
然后它应该在CREATE TABLE
syntax:
CREATE [GLOBAL TEMPORARY] TABLE tablename
...
(<col_def> [, {<col_def> | <tconstraint>} ...])
...;
<col_def> ::= <regular_col_def> | <computed_col_def>
<regular_col_def> ::=
colname {<datatype> | domainname}
[DEFAULT {literal | NULL | <context_var>}]
[NOT NULL]
[<col_constraint>]
[COLLATE collation_name]
...