IBMDB2SQL中的动态记录复制



我需要复制特定表的一行,但在同一行中,我必须更改主键。在我的情况下,主键是一个三位数的年份。例如:今年是221,明年是222。

我正在使用一个主键为999的记录,我将复制该记录。现在我需要使它成为动态的(在测试时不必是动态的(,这样我就可以只对多个表使用它,因为它将从RPGLE中的过程中调用。

我以前使用过一种非常静态的方法:

INSERT INTO Table 
SELECT PK -- the PK is the new year, in this case 222 and all other fields are added as well.
FROM Table 
WHERE PK = 999;

我试着得到这样的东西(我知道这不起作用(:

INSERT INTO Table WHERE PK = 222
SELECT * FROM Table WHERE PK = 999;

我希望这是足够的信息来理解我想要实现的目标,并且这是可能的

提前感谢

如果使用表,则不必命名列。

因此,您可以构建动态语句并立即执行:

declare global temporary table copyrows as (
select * from table1 where pk = 999
) with data with replace;
update session.copyrows set pk = 222;
insert into table1 select * from session.copyrows;

最新更新