无法在MySql 5.5.27中使用if条件创建触发器

时间:2015-04-19 17:06:19

标签: mysql

假设我有两张表A和B.

表A有4栏:id,姓名,年龄,状态
*状态可能只有活动和非活动状态 表B有:id,age,changedOn,idOfA

我想在表A中写一个更新触发器 当表A的更新行状态为“无效”时,工作

我试过这样写一个触发器:

CREATE DEFINER = `root`@`localhost` TRIGGER `before_A_update` 
BEFORE UPDATE ON `A` FOR EACH ROW
IF New.status = 'inactive' THEN
UPDATE B
SET age= (NEW.age + 10),
changedOn = NOW()
WHERE idOfA= NEW.id
END IF;
END;

但它显示错误并且未创建触发器。

1 个答案:

答案 0 :(得分:0)

2件事,你需要一个开头的分隔符,也缺少begin子句,它应该是

delimiter //
CREATE DEFINER = `root`@`localhost` 
TRIGGER `before_A_update` before UPDATE ON `A` 
FOR EACH ROW
BEGIN
 IF New.status = 'inactive' THEN 
  UPDATE B
  SET age= (NEW.age + 10),
  changedOn = NOW()
  WHERE idOfA= NEW.id
 END IF;
END;//

delimiter ;