Câu trả lời:
Bạn sẽ cần một IF
mệnh đề để kiểm tra sự tồn tại của bảng và sau đó là một câu lệnh riêng để thực sự loại bỏ nó nếu nó tồn tại.
Giải pháp thay thế được đưa ra ở đây :
Tạo chức năng lưu trữ 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
và sử dụng nó như Begin atomic call db2perf_quiet_drop('table my_table'); End