更新操作失败,SQLCODE = -803,如何解决?

时间:2019-02-08 19:45:31

标签: sql db2 sql-update

我正在尝试根据某些条件更新表记录。当我更新一些最近的记录时,它可以正常工作,但是当我为更多的记录或较旧的记录运行时,它会引发错误 查询:

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的数字都可以正常工作。

1 个答案:

答案 0 :(得分:2)

SQL0803N的描述中有一条SELECT语句,它可以帮助您找到您的语句试图违反的唯一索引(IID = 2)。

  

SELECT INDNAME,INDSCHEMA
  来自SYSCAT.INDEXES
  IID = 2
  AND TABSCHEMA =' TABLE_SCHEMA 'AND TABNAME =' TABLE_NAME '