所以我认为NOT NULL DEFAULT如果与列名一起使用会填充默认值
INSERT INTO TPAVIT/SP001F ( sp1ruln,SP1FILE,SP1FLD,
SP1CND,SP1VAL,SP1STID)
VALUES(3,'ITMRVA','ENGNO','LIKE','%416050%','PLD')
以下错误即将出现:
Null values not allowed in column or variable SP1SEQNO.
但我已将SP1SEQNO定义如下
SP1SEQNO CHAR(3) NOT NULL DEFAULT
如果INSERT没有,那么这不应该提供默认值吗?这个字段虽然是主键。
答案 0 :(得分:1)
我认为primary key
是问题所在。拥有主键列的默认值实际上没有意义,因为您只能将该默认值添加到表中一次。之后,您将获得重复的密钥错误。要解决此问题,您需要删除DEFAULT
,并在INSERT
语句中指定唯一键。
备选方案:
AS IDENTITY
定义列。NEXT VALUE FOR sequence-name
填充字段。在您的INSERT
声明中。我更喜欢序列,因为它更容易重启。