【发布时间】:2016-07-26 08:36:16
【问题描述】:
我想创建一个触发器,在插入之前测试条件,如果满足条件则取消插入。
我在包含 if 语句的手册中遇到了这段代码,但文档中没有指定取消插入的方法。
CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;
【问题讨论】:
-
此触发器适用于
UPDATE而不是INSERT。 -
我认为从 MySQL 中阻止
INSERT的唯一方法是抛出异常,这不是很好。有什么方法可以阻止应用层的INSERT?