oracle数据库 设置字段默认值无效

2025-05-01 18:02:31
推荐回答(1个)
回答1:

默认值,    和  是否可以为空,   是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")