在MySQL中创建TRIGGER的问题

时间:2015-05-15 12:08:41

标签: mysql triggers

我是第一次在我的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 ;

年龄检查会触发不会创建表。运行此查询时,它不会显示任何错误消息。

这是我的表格图片,

enter image description here

更新:根据答案

enter image description here

2 个答案:

答案 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中检查是否有选项可以设置分隔符,如果是,请选择并从上面删除分隔符部分。