【发布时间】:2014-12-02 20:49:10
【问题描述】:
您好,我正在尝试为一个 SQL 触发器声明一些用户定义的变量(EX:@var),该触发器对给定订阅者 ID 的选定行中的值求和。但是,我的 DECLARE 语句出现语法错误。
这是我的代码:
DELIMITER //
CREATE TRIGGER trg_subscribers_points
AFTER UPDATE ON subscribers_points FOR EACH ROW
BEGIN
DECLARE @Sub_ID bigint, @Col1 bigint, @Col2 bigint, @Col3 bigint
(select @Sub_ID = subscriber_id, @Col1 = action, @Col2 = share, @Col3 = viral FROM subscribers_points)
update subscribers_points set total_points = @Col1 + @Col2 + @Col3 where subscriber_id = @Sub_ID
END//
DELIMITER ;
建议?提前致谢。
更新代码:
DELIMITER //
CREATE TRIGGER trg_subscribers_points
BEFORE UPDATE
ON subscribers_points
FOR EACH ROW
BEGIN
SET NEW.total_points = (action + share + viral);
END//
DELIMITER ;
^这会返回一个“‘字段列表’中的未知列‘操作’”错误。
操作、分享和病毒都是表subscribers_points 中的列名,所以我不确定它为什么会返回此错误。
【问题讨论】:
标签: mysql syntax triggers declare