嗨
当我尝试使用此触发器计算end_date时,我收到此消息。持续时间Integer来自另一个表。这是在MySQL的Mamp环境中完成的
任何帮助表示赞赏
使用的代码
DELIMITER //
CREATE TRIGGER m_duration_ins_tr1
BEFORE INSERT ON memberships
FOR EACH ROW
BEGIN
DECLARE duration INTEGER;
SELECT duration FROM membership_type WHERE
membership_type_id = NEW.member_type;
SET NEW.end_date := DATE_ADD(NEW.start_date, INTERVAL duration MONTH);
END //
DELIMITER ;
答案 0 :(得分:0)
触发事件可以是INSERT,UPDATE或DELETE。 我认为您不能选择。 尝试mysql workbench创建触发器
答案 1 :(得分:0)
我认为您只需要更换
SELECT duration FROM membership_type WHERE
membership_type_id = NEW.member_type;
与
SET duration = SELECT duration FROM membership_type WHERE membership_type_id = NEW.member_type LIMIT 1;
光秃秃的SELECT并没有做任何事情分配给您的局部变量,但实际上,这实际上是尝试从触发器中返回结果集,提示错误。