默认值, 和 是否可以为空, 是2个概念啊.
默认值, 就是你插入数据的时候, 如果不指定, 那么 数据库就 使用默认值, 来填写那一列.
为空, 就是那一列, 你不能指定为 NULL
CREATE TABLE temp (
ID INT,
VAL1 INT DEFAULT 100 NOT NULL ,
VAL2 INT DEFAULT 200
);
INSERT INTO temp (id) VALUES (1);
INSERT INTO temp (id, val1) VALUES(2, 101);
INSERT INTO temp (id, val2) VALUES(3, 102);
SQL> SELECT * FROM temp;
ID VAL1 VAL2
---------- ---------- ----------
1 100 200
2 101 200
3 100 102
SQL> INSERT INTO temp (id, val1) VALUES(4, NULL);
INSERT INTO temp (id, val1) VALUES(4, NULL)
*
ERROR 位于第 1 行:
ORA-01400: 无法将 NULL 插入 ("TEST"."TEMP"."VAL1")