尝试从start_date +持续时间生成end_date时,MySQL触发错误

时间:2019-03-07 19:53:05

标签: mysql triggers mamp

Error Message

table

当我尝试使用此触发器计算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 ;

2 个答案:

答案 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并没有做任何事情分配给您的局部变量,但实际上,这实际上是尝试从触发器中返回结果集,提示错误。