我嘗試使用另一個表來更新表。我得到錯誤號碼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