增量触发器更新mysql

时间:2017-11-16 08:33:01

标签: mysql sql triggers sql-update

我的表有5列:id,piece,tube,validate,index1 当我将前一行的验证列(只有验证栏)更新为我桌上的2时,我想增加下一个具有相同管和片的index1的列验证。(我不知道我是否可以做到触发)

例如,这是我的表:

id  / piece / tube / validate / index1
__________________________________________________________________
1 / 1000/  / 011      / 1    / 1
2 / 1000/  / 011      / 0    / 2
3 / 1000/  / 011      / 0    / 3
4 / 1000/  / 011      / 0    / 4

我的函数更新了id = 1的行的“validate”列 实际行验证+ 1 = 2 - >下一行验证+1

id  / piece / tube / validate / index1
__________________________________________________________________
1 / 1000/  / 011      / 2    / 1
2 / 1000/  / 011      / 1    / 2
3 / 1000/  / 011      / 0    / 3
4 / 1000/  / 011      / 0    / 4

我做了那个触发器:

Create Trigger operationUp after update on operation 
for each Row 
begin 
    if validate =2 
       select new.index1+1 
       from operation 
       where piece=new.piece 
       and tube=new.tube;

       Update operation set validate=validate+1 
    end if; 
end;

但没有工作

1 个答案:

答案 0 :(得分:0)

除了在存储的函数或触发器中,不允许通过调用函数或触发器的语句修改已经使用的表(用于读取或写入)语法错误 - 1)如果必须有一个则2)每个sql语句都必须以; (你在更新语句后缺少一个)3)你不能在触发器中返回结果集(你不能选择,即使你知道只返回了1个值,编译器也不会让你尝试)。 / p>