我是第一次在我的MYSQL工作台中使用触发器概念,如下面的查询
首先,我使用以下查询
创建了人表CREATE TABLE people (age INT, name varchar(150));
然后我使用下面的查询来触发
DELIMITER
CREATE TRIGGER agecheck BEFORE INSERT ON raptor1_5.people FOR EACH ROW IF NEW.age < 0 THEN SET NEW.age = 0; END IF;
DELIMITER ;
但年龄检查会触发不会创建人表。运行此查询时,它不会显示任何错误消息。
这是我的表格图片,
更新:根据答案
答案 0 :(得分:1)
试试这个。
USE `raptor1_5`;
DELIMITER $$
DROP TRIGGER IF EXISTS raptor1_5.agecheck$$
USE `raptor1_5`$$
CREATE TRIGGER agecheck BEFORE INSERT ON people
FOR EACH ROW
BEGIN
IF NEW.age < 0 THEN
SET NEW.age = 0;
END IF;
END$$
DELIMITER ;
答案 1 :(得分:0)
标准触发器语法应为
DELIMITER //
CREATE TRIGGER agecheck BEFORE INSERT ON raptor1_5.people
FOR EACH ROW
BEGIN
IF NEW.age < 0 THEN
SET NEW.age = 0;
END IF;
END;//
DELIMITER ;
以上是在mysql cli上运行时,但是在phpmyadmin或workbench中检查是否有选项可以设置分隔符,如果是,请选择并从上面删除分隔符部分。