我想知道是否可以在5.1中创建一个mysql触发器,以便在输入初始化日期后自动填充一个可变天数的日期字段。
这样的事情:MySQL add days to a date但是与相应字段匹配的天数而不是静态数字。
这是我的意思的一个例子:
理想情况下,我希望“已结帐”中的字段“返回日期”根据已预订的日期及其租借类型自动完成。因此,例如,在ISBN 123的情况下,返回日期应该是7月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;
$$