Not Null约束
not null约束常常被归于“强制”约束。
CREATE TABLE temp(id NUMBER(1) NOT NULL);
CREATE TABLE temp(id NUMBER(1) CONSTRAINT nn_temp_id NOT NULL);
为什么我们为Primary key, unique, foreign key, 和chech约束命名,有一个重要原因是:
Oracle约束冲突错误信息包含了约束名,这是一个非常有用的的信息,让我们可以在没有查看数据字典和引起错误的研究代码前迅速的定位分离出问题.
而not null冲突错误信息中没有约束名,因为它包含了字段名
CREATE TABLE temp
(N1 NUMBER constraint nn_1 NOT NULL,
N2 NUMBER constraint nn_2 NOT NULL,
N3 NUMBER constraint nn_3 NOT NULL);
INSERT INTO temp VALUES (1, null, 1);
将会产生:
ORA-01400: cannot insert NULL into ("SCOTT"."TEMP"."N2")
Default Values(默认值)
看一下下面一个例子:
CREATE TABLE TEMP (id NUMBER, value NUMBER);
INSERT INTO temp VALUES (1, 100);
INSERT INTO temp (id, value) VALUES (1, 100);
INSERT INTO temp (id) VALUES (2);
前两行Insert语句是一样的,第三条在Value字段中插入了一个NULL值
你