Csh*_*hah 6 db2 syntax if-statement
如果表存在,则后续查询会删除表,但它似乎不适用于IBM Db2.
Begin atomic
if( exists(
SELECT 1 FROM SYSIBM.SYSTABLES
WHERE NAME='EMAIL' AND TYPE='T' AND creator = 'schema1'
)) then
drop table EMAIL;
end if;
End
Run Code Online (Sandbox Code Playgroud)
如果我有一个DML语句而不是表drop语句,那么相同的if exists语法会起作用.对此有任何帮助表示赞赏
更新1:我读到你不能在开始原子块内运行DDL语句因此我的第一个语句失败但第二个没问题.
我这样做的方式如下
Begin atomic
if( exists( SELECT 1
FROM SYSIBM.SYSTABLES
WHERE NAME='EMAIL' AND TYPE='T' AND creator = 'schema1'
)
)
then customStoredproc('drop table EMAIL');
end if;
End
Run Code Online (Sandbox Code Playgroud)
我customStoredProc只是有一个语句执行即时@dynsql;