DB2 i Series表TIMESTAMP字段更新失败:FROM关键字报错排查
DB2 i Series 关联更新TIMESTAMP字段错误解决
你的问题出在使用了SQL Server风格的UPDATE写法,但DB2 for i(i Series)并不支持这种带FROM子句的UPDATE语法,因此触发了Keyword FROM not expected的报错。下面是两种符合DB2语法的解决方案:
方案一:用EXISTS子句关联表
适合仅需判断关联关系存在的简单场景,直接在WHERE子句中过滤出需要更新的行:
UPDATE table1 SET datetime1 = CURRENT TIMESTAMP WHERE EXISTS ( SELECT 1 FROM table2 tbl2 WHERE table1.ID = tbl2.ID )
方案二:使用MERGE语句(官方推荐)
MERGE是DB2官方推荐的多表关联更新写法,灵活性更强,能适配更复杂的关联更新场景:
MERGE INTO table1 tbl1 USING table2 tbl2 ON tbl1.ID = tbl2.ID WHEN MATCHED THEN UPDATE SET datetime1 = CURRENT TIMESTAMP
两种写法都能实现你的需求:将table1中与table2 ID匹配的行的datetime1字段更新为当前时间戳。
内容的提问来源于stack exchange,提问作者bmiguelh
相关产品推荐
相关产品推荐

