0

我的测试数据库上有 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

我怎样才能做到这一点?谢谢

4

1 回答 1

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数据类型!

于 2013-09-06T08:25:47.193 回答