MySQL触发器更新,从另一个表中选择

Mic*_*ael 3 mysql triggers

只是学习触发器,我创建了以下触发器;

CREATE TRIGGER `incremental_before_ins_tr` BEFORE INSERT ON incremental`
FOR EACH ROW
BEGIN
SET NEW.source = (Select source from crm_record
where msisdn = new.msisdn order by dat DESC limit 1);
END;
Run Code Online (Sandbox Code Playgroud)

但是,该值似乎没有得到更新.有任何想法吗?

Mic*_*ael 6

我实际上已经设法解决了这个问题.这是更新的代码

CREATE TRIGGER `incremental_before_ins_tr` BEFORE INSERT ON `incremental`
FOR EACH ROW
BEGIN
SET NEW.source = (Select source from crm_record
where crm_record.msisdn = new.msisdn order by dat DESC limit 1);
END;
Run Code Online (Sandbox Code Playgroud)

我需要在第5行的列值之前指定表名.


Jro*_*rod 0

看来您有一个错字。

您输入的增量带有尾随反引号,而不是用反引号括起来。

您的触发器现在可能绑定到一个名为的表incremental`,我假设该表不存在。

既然你已经排除了上述情况。我发现缺少 UPDATE 关键字。UPDATE table在 SET 行之前添加。将 table 替换为您的表的名称。