HSQLDB支持有条件地创建这样的表:
CREATE TRIGGER myTrigger AFTER INSERT ...
但遗憾的是,这种语法不支持触发器。如果我们尝试创建这样的触发器
SELECT 1 FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'MYTRIGGER')
如果我们之前创建了“对象名称已存在”,则会出现错误。
目前的解决方法是什么?我可以使用此选项检查触发器是否存在:
std::unique_ptr
但不确定如何使用它来有条件地执行create trigger语句。
答案 0 :(得分:0)
你可以试试这个:
SELECT COUNT(*)
INTO v_exists
FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_NAME = 'MYTRIGGER';
IF (v_exists = 0) THEN -- Does not exists
CREATE TRIGGER ....
END IF;