刚学习触发器,我创建了以下触发器;
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;
然而,该值似乎没有得到更新。有什么想法吗?
答案 0 :(得分:5)
我实际上已经设法解决了这个问题。这是更新的代码
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;
我需要在第5行的列值之前指定表名。
答案 1 :(得分:1)
看起来你有一个错字。
您已使用尾随反引号输入增量值,而不是将其包含在反引号中。
您的触发器现在可能绑定到名为incremental`
的表,我假设该表不存在。
因为你已经排除了上述内容。我看到缺少UPDATE关键字。在SET行之前添加UPDATE table
。将表替换为表的名称。