0

我有一张带有时间计划的表格:例如:一个月、3 个月、6 个月我想将我的用户与这张表格联系起来

我想创建一个触发器,根据开始日期和计划表更新我的完成日期

> CREATE TRIGGER `sum_fin`  BEFORE INSERT ON `planificare_leg`  FOR EACH
> ROW  BEGIN
>     IF NEW.`data_final` IS NULL THEN
>         SET NEW.data_final = 
> (SELECT  DATE_ADD(`data_start`,INTERVAL `valoare_durata` `fel_durata` ) as data_fin
> FROM v_users_planificare
> where codtimp = NEW.codtimp and user_id = NEW.user_id) ;
>     END IF; 
>     END;

valoare_durata 是一个包含装载数量的整数字段。例如:对于 3 个月的计划,valoare_durata = 3 和 fel_durata = MONTH

sql 返回此错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fel_durata ) as data_fin FROM v_users_planificare where codtimp = NEW.codtimp an' at line 6

我创建了一个测试来看看会发生什么:

更新 planificare_leg l 在 plan.user_id = l.user_id 和 plan.codtimp = l.codtimp 上加入 v_users_planificare 计划 set activ = 1 where DATE_ADD( data_start,INTERVAL 1 MONTH) <= NOW() 和 data_start >= NOW()

作品

更新 planificare_leg l 在 plan.user_id = l.user_id 和 plan.codtimp = l.codtimp 上加入 v_users_planificare 计划 set activ = 1 where DATE_ADD( data_start,INTERVAL valoare_durata fel_durata) <= NOW() and data_start >= NOW()

不工作

4

1 回答 1

0

啊,缺少一个括号

SET NEW.data_final = (SELECT  DATE_ADD(`data_start`,INTERVAL `valoare_durata` `fel_durata` )) as data_fin FROM v_users_planificare
                                                                                            ^
于 2013-09-30T11:39:50.263 回答