试试这个:
IF EXISTS (SELECT name FROM sysibm.systables WHERE name = 'tab_name') THEN
DROP TABLE tab_name;END IF;
Run Code Online (Sandbox Code Playgroud)
下面的内容在 DB2 中对我有用,它查询视图SYSCAT.TABLES以检查表是否存在。如果是,则准备并执行该DROP TABLE语句。
BEGIN
IF EXISTS (SELECT TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA = 'SCHEMA_NAME' AND TABNAME = 'TABLE_NAME') THEN
PREPARE stmt FROM 'DROP TABLE SCHEMA_NAME.TABLE_NAME';
EXECUTE stmt;
END IF;
END
Run Code Online (Sandbox Code Playgroud)
首先查询表是否存在,例如
select tabname from syscat.tables where tabschema='myschema' and tabname='mytable'
Run Code Online (Sandbox Code Playgroud)
如果它返回一些问题你的
drop table myschema.mytable
Run Code Online (Sandbox Code Playgroud)
另一种可能性是仅发出 drop 命令并捕获表不存在时将引发的异常。只需将该代码放入该方法的 try {...} catch (Exception e) { // Ignore } 块中即可。
| 归档时间: |
|
| 查看次数: |
23390 次 |
| 最近记录: |