ivotron Asked: 2011-12-22 09:41:11 +0800 CST2011-12-22 09:41:11 +0800 CST 2011-12-22 09:41:11 +0800 CST DB2 等效于 MySQL 的 DROP .. IF EXISTS 772 在 DB2 for MySQL(或 PostgreSQL)中是否有等价物: DROP TABLE IF EXISTS sometable; db2 3 个回答 Voted Best Answer Nick Chammas 2011-12-22T09:46:40+08:002011-12-22T09:46:40+08:00 不。 您需要一个IF子句来检查表是否存在,然后需要一个单独的语句来实际删除它(如果它确实存在)。 dma_k 2012-06-26T11:04:20+08:002012-06-26T11:04:20+08:00 此处给出了替代解决方案: 创建存储函数db2perf_quiet_drop(): CREATE PROCEDURE db2perf_quiet_drop( IN statement VARCHAR(1000) ) LANGUAGE SQL BEGIN DECLARE SQLSTATE CHAR(5); DECLARE NotThere CONDITION FOR SQLSTATE '42704'; DECLARE NotThereSig CONDITION FOR SQLSTATE '42883'; DECLARE EXIT HANDLER FOR NotThere, NotThereSig SET SQLSTATE = ' '; SET statement = 'DROP ' || statement; EXECUTE IMMEDIATE statement; END 并将其用作Begin atomic call db2perf_quiet_drop('table my_table'); End AngocA 2014-08-26T13:40:14+08:002014-08-26T13:40:14+08:00 您可以使用匿名块 BEGIN DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; EXECUTE IMMEDIATE 'DROP TABLE sometable'; END @
不。
您需要一个
IF
子句来检查表是否存在,然后需要一个单独的语句来实际删除它(如果它确实存在)。此处给出了替代解决方案:
创建存储函数
db2perf_quiet_drop()
:并将其用作
Begin atomic call db2perf_quiet_drop('table my_table'); End
您可以使用匿名块