0
我想在行中插入一行,如果它還不存在。我有以下的代碼,直接執行:當我將其更改爲一個paramtered方法逐年然而如果DB2插入行不存在,那麼參數值爲
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,但仍然沒有成功。
有沒有辦法我可以聲明一個臨時變量或什麼東西在我的選擇部分使用這個參數?