无法更新 DB2 table
unable to update DB2 table
你能帮我更新 DB2 table 吗?有没有更好的方法来更新这个巨大的 table?进阶谢谢。
UPDATE RT.ITEM IM SET
IM.ITEMNAME = GT.ITEM_D, IM.ITEMSIZE = GT.SIZE, IM.COLOR = GT.COL,
IM.ITEMINFO = GT.ITEM_I WHERE IM.RET = 14 AND IM.LAN = 10 and
IM.ITEMK IN ( SELECT GT.SN_N FROM GD.G_TEMP GT );
尝试从另一个架构 table(GD.G_TEMP) 更新 table(RT.ITEM) 并收到以下错误消息:
[代码:-206,SQL 状态:42703] DB2 SQL 错误:SQLCODE=-206,SQLSTATE=42703,SQLERRMC=GT.ITEM_D
您的代码无效。 DB2 不支持 UPDATE
中的显式 JOIN
。但是你可以用相关子查询做你想做的事:
UPDATE RT.ITEM IM
SET (ITEMNAME, ITEMSIZE, COLOR, ITEMINFO) =
(SELECT GT.ITEM_D, GT.SIZE, GT.COL, GT.ITEM_I
FROM GD.G_TEMP GT
WHERE GT.SN_N = IM.ITEMK
FETCH FIRST 1 ROW ONLY
)
WHERE IM.RET = 14 AND IM.LAN = 10 AND
EXISTS (SELECT 1
FROM GD.G_TEMP GT
WHERE GT.SN_N = IM.ITEMK
);
您好,您可以尝试使用合并命令,如果 distinct 不能解决您在 gd_temp table 中对单个 sn_n 值使用多行的问题,那么您将不得不添加更多子查询中的过滤器。
MERGE INTO RT.ITEM IM
USING
(SELECT DISTINCT
GT.ITEM_D,
GT.SIZE,
GT.COL,
GT.ITEM_I
FROM GD.G_TEMP gt
) gt on gt.sn_n=im.itemk AND IM.RET = 14 AND IM.LAN = 10
WHEN MATCHED THEN UPDATE
SET (im.ITEMNAME, im.ITEMSIZE, im.COLOR, im.ITEMINFO) = (GT.ITEM_D, GT.SIZE, GT.COL, GT.ITEM_I)
你能帮我更新 DB2 table 吗?有没有更好的方法来更新这个巨大的 table?进阶谢谢。
UPDATE RT.ITEM IM SET
IM.ITEMNAME = GT.ITEM_D, IM.ITEMSIZE = GT.SIZE, IM.COLOR = GT.COL,
IM.ITEMINFO = GT.ITEM_I WHERE IM.RET = 14 AND IM.LAN = 10 and
IM.ITEMK IN ( SELECT GT.SN_N FROM GD.G_TEMP GT );
尝试从另一个架构 table(GD.G_TEMP) 更新 table(RT.ITEM) 并收到以下错误消息: [代码:-206,SQL 状态:42703] DB2 SQL 错误:SQLCODE=-206,SQLSTATE=42703,SQLERRMC=GT.ITEM_D
您的代码无效。 DB2 不支持 UPDATE
中的显式 JOIN
。但是你可以用相关子查询做你想做的事:
UPDATE RT.ITEM IM
SET (ITEMNAME, ITEMSIZE, COLOR, ITEMINFO) =
(SELECT GT.ITEM_D, GT.SIZE, GT.COL, GT.ITEM_I
FROM GD.G_TEMP GT
WHERE GT.SN_N = IM.ITEMK
FETCH FIRST 1 ROW ONLY
)
WHERE IM.RET = 14 AND IM.LAN = 10 AND
EXISTS (SELECT 1
FROM GD.G_TEMP GT
WHERE GT.SN_N = IM.ITEMK
);
您好,您可以尝试使用合并命令,如果 distinct 不能解决您在 gd_temp table 中对单个 sn_n 值使用多行的问题,那么您将不得不添加更多子查询中的过滤器。
MERGE INTO RT.ITEM IM
USING
(SELECT DISTINCT
GT.ITEM_D,
GT.SIZE,
GT.COL,
GT.ITEM_I
FROM GD.G_TEMP gt
) gt on gt.sn_n=im.itemk AND IM.RET = 14 AND IM.LAN = 10
WHEN MATCHED THEN UPDATE
SET (im.ITEMNAME, im.ITEMSIZE, im.COLOR, im.ITEMINFO) = (GT.ITEM_D, GT.SIZE, GT.COL, GT.ITEM_I)