mysql触发器自动完成变量日期

时间:2016-07-03 04:06:29

标签: mysql datetime triggers

我想知道是否可以在5.1中创建一个mysql触发器,以便在输入初始化日期后自动填充一个可变天数的日期字段。

这样的事情:MySQL add days to a date但是与相应字段匹配的天数而不是静态数字。

这是我的意思的一个例子:

Example table

理想情况下,我希望“已结帐”中的字段“返回日期”根据已预订的日期及其租借类型自动完成。因此,例如,在ISBN 123的情况下,返回日期应该是7月2日。

2 个答案:

答案 0 :(得分:0)

在触发器中,您可以选择所需的值并将其传递给下一个语句 --example ---

DROP TRIGGER IF EXISTS TEST_INSERT;
DELIMITER $$
CREATE TRIGGER TEST_INSERT AFTER INSERT ON TEST FOR EACH ROW BEGIN
SET v_date = (SELECT val FROM TABLE  );
UPDATE TEST SET date = date + v_date where id = 161;
END$$ 

答案 1 :(得分:0)

更新新的'触发器内的值必须在插入之前完成,否则查询将继续调用自身并崩溃。

下面还包括声明变量的正确语法。

DELIMITER $$ CREATE TRIGGER Rental_INSERT BEFORE INSERT ON Rental FOR EACH ROW BEGIN DECLARE v INTEGER; SET v := (SELECT val (in days) FROM Rental_Days WHERE Rental_Days.attribute = NEW.attribute); UPDATE Rental SET New.return_date = FROM_DAYS(TO_DAYS(New.borrowed_date) + v); END; $$