如果它尚不存在,我想在表中插入一行。我有以下直接执行的代码:
insert into MyTable (Column1, Column2, Year, Code, Id, UPDATE_IDENT)
select 'Default', 'Default', 2014, '', 0, 0
from sysibm.sysdummy1
WHERE NOT EXISTS (SELECT * FROM MyTable
WHERE Column1 = 'c1'
AND Column2 = 'c2'
AND Year = 2014)
但是,当我按年将其更改为参数化方法时:
insert into MyTable (Column1, Column2, Year, Code, Id, UPDATE_IDENT)
select 'Default', 'Default', @year, '', 0, 0
from sysibm.sysdummy1
WHERE NOT EXISTS (SELECT * FROM MyTable
WHERE Column1 = 'c1'
AND Column2 = 'c2'
AND Year = @year)
还尝试在原子部分使用声明的变量但没有成功:
BEGIN ATOMIC
DECLARE varJaar INTEGER;
SET varYear = @year;
insert into MyTable (Column1, Column2, Year, Code, Id, UPDATE_IDENT)
select 'Default', 'Default', varYear , '', 0, 0
from sysibm.sysdummy1
WHERE NOT EXISTS (SELECT * FROM MyTable
WHERE Column1 = 'c1'
AND Column2 = 'c2'
AND Year = varYear )
END;
我无法执行此操作,因为我无法在我的选择部分中使用参数。尝试将@year 修改为@year 作为 Year,但仍然没有成功。
有没有办法我可以在我的选择部分声明一个临时变量或使用这个参数的东西?