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 Equivalente do DB2 para DROP .. IF EXISTS do MySQL 772 Existe um equivalente no DB2 para MySQL (ou PostgreSQL): DROP TABLE IF EXISTS sometable; db2 3 respostas Voted Best Answer Nick Chammas 2011-12-22T09:46:40+08:002011-12-22T09:46:40+08:00 Não. Você precisará de uma IFcláusula para verificar a existência da tabela e, em seguida, de uma instrução separada para realmente eliminá-la, se existir. dma_k 2012-06-26T11:04:20+08:002012-06-26T11:04:20+08:00 Solução alternativa é dada aqui : Crie a função armazenada 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 e usá-lo comoBegin atomic call db2perf_quiet_drop('table my_table'); End AngocA 2014-08-26T13:40:14+08:002014-08-26T13:40:14+08:00 Você pode usar um bloco anônimo BEGIN DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; EXECUTE IMMEDIATE 'DROP TABLE sometable'; END @
Não.
Você precisará de uma
IF
cláusula para verificar a existência da tabela e, em seguida, de uma instrução separada para realmente eliminá-la, se existir.Solução alternativa é dada aqui :
Crie a função armazenada
db2perf_quiet_drop()
:e usá-lo como
Begin atomic call db2perf_quiet_drop('table my_table'); End
Você pode usar um bloco anônimo