我正在尝试根据某些条件更新表记录。当我更新一些最近的记录时,它可以正常工作,但是当我为更多的记录或较旧的记录运行时,它会引发错误 查询:
update table_Name set Col1 = 'C'
where date(TRN_SCH_DPT_DT) < current date - 200 DAYS
工作正常!
update table_Name set Col1 = 'C'
where date(TRN_SCH_DPT_DT) < current date - 100 DAYS
抛出错误=> DB2 SQL错误:
SQLCODE = -803,SQLSTATE = 23505,SQLERRMC = 2
注意:我没有更新主键。任何大于200的数字都可以正常工作。
答案 0 :(得分:2)
SQL0803N的描述中有一条SELECT语句,它可以帮助您找到您的语句试图违反的唯一索引(IID = 2)。
SELECT INDNAME,INDSCHEMA
来自SYSCAT.INDEXES
IID = 2
AND TABSCHEMA =' TABLE_SCHEMA 'AND TABNAME =' TABLE_NAME '