尝试从start_date + duration生成end_date时出现MySQL Trigger错误

问题描述 投票:0回答:2

Error Message

table

你好

当我尝试使用此触发器计算end_date时,我收到此消息。持续时间Integer来自另一个表。这是在Mamp环境中的MySQL中完成的

任何帮助赞赏

代码使用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 ;

mysql triggers mamp
2个回答
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没有做任何事情来分配给你的局部变量,但实际上基本上是一个尝试从错误建议的触发器返回结果集。


0
投票

触发事件可以是INSERT,UPDATE或DELETE。我不认为你可以选择。尝试使用mysql workbench来创建触发器

© www.soinside.com 2019 - 2024. All rights reserved.