更新t1列上t2上的Mysql触发器更新字段

时间:2013-09-06 08:22:03

标签: mysql

我的测试数据库上有2个表(t1,t2)。

CREATE TABLE IF NOT EXISTS `t1` (
`name` varchar(10) NOT NULL,
`code` varchar(10) NOT NULL,
`end_date` varchar(8) NOT NULL
);

CREATE TABLE IF NOT EXISTS `t2` (
`date` varchar(8) NOT NULL
);

我想在更新t1.end_date时为更新t2.date(带有t1.end_date值)创建一个触发器。 我尝试过这种方式但没有成功(变量'OLD'不是变量组件(不能用作XXXX.variable_name)。)

CREATE TRIGGER update_date BEFORE UPDATE ON t1 FOR EACH ROW
IF NOT (t1.NEW.end_date <=> t1.OLD.end_date) THEN
SET t2.OLD.date = t2.NEW.end_date;
END IF

我该怎么做?感谢

1 个答案:

答案 0 :(得分:1)

delimiter |
CREATE TRIGGER update_date AFTER UPDATE ON t1 
FOR EACH ROW BEGIN
   IF NOT (NEW.end_date <=> OLD.end_date) THEN
      update t2
      SET `date` = NEW.end_date;
   END IF;
END
|
delimiter ;

请不要使用字符串来存储日期。使用date数据类型!