我是dbms中的新查询,所以如果有人能够弄清楚应该在这里做什么。另外,我正在使用Mysql。
代码:
-> create trigger age_trigger before insert or update of age on employee
-> for each row
-> when( new.age <25)
-> begin
-> select 'Age can not be less than 25'
-> end;
错误:
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在(每个行的员工附近使用'或更新年龄时使用的语法) new.age&lt; 25)开始在第1行选择'年龄c'
答案 0 :(得分:1)
您无法提出自己的语法:)
您无法指定多个trigger_events。您需要单独的插入和更新触发器。这个of age
也没有业务。
总而言之,你在那里尝试做的事情可以在MySQL中完成(google for SIGNAL,如果你坚持的话),但最好的做法是将这种逻辑放在应用程序层中。不要把这样的逻辑放在数据库中。
答案 1 :(得分:0)
以下是实施BEFORE INSERT
以获得所需结果的选项之一。
CREATE TRIGGER age_trigger
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
IF NEW.age < 25
THEN SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Age can not be less than 25';
END IF;
END;
类似的语法可用于before update
触发器。
<强> DEMO 强>