我尝试使用另一个表来更新表。我得到错误号码407.它说我试图在一个不可空列中插入一个空值。
我检查了它的列my_TIMESTAMP列。通常它不能为空。因为我更新了柱子,n与current timestamp
。它应该生成一个时间戳。哪里有问题?
DB2更新语句中丢失
UPDATE table1 mytable
SET (
my_PROCESS,
my_TIMESTAMP,
col3,
COL5
) = (
SELECT
(select PROCESSNAME from table3),
current timestamp,
COL3,
COL5
FROM table2 mytable2
WHERE mytable.COL4 = mytable2.COL4
)
WHERE EXISTS (
SELECT 'x'
FROM table1 mytable1, table2 mytable21
WHERE mytable1.COL4 = mytable21.COL4
);
你的内部'SELECT'语句的结果是什么?它是否包含对应于目标表中任何不可空的列的空值。 – 2012-02-28 08:44:10
@husbas错误指向'TBSPACEID = 7,TABLEID = 265,COLNO = 2''这是my_TIMESTAMP列。 – Kayser 2012-02-28 08:48:41
从语句中删除UPDATE-SET部分并执行它,然后查看结果并扫描“ - ”。那一个会产生问题 – 2012-02-28 09:24:41