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

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

问题描述:

只是了解触发器,我创建了以下触发器;MySQL触发更新,从另一个表中选择

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; 

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

看起来像你有一个错字。

您已经输入了增量后跟反引号而不是反引号。

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

既然你已经排除了上述情况。我看到UPDATE关键字缺失。在SET行之前添加UPDATE table。用表格名称替换表格。

+0

列值表名称这实际上是在这个条目中的错字,它被绑定到正确的表 – Michael 2011-05-18 20:13:36

+0

我更新帖子。这应该为你清理一些事情。 – Jrod 2011-05-18 20:35:53

+0

尝试过,并得到以下错误**无法更新存储的函数/触发器中的表增量,因为它已被调用此函数/触发器的语句使用** – Michael 2011-05-19 07:04:01

我已经设法自己解决这个问题。以下是更新后的代码

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行