不允许从触发器返回结果集

时间:2013-05-19 23:56:45

标签: mysql stored-procedures triggers

我需要在插入时增加下一个最高字符字段 - 例如如果'007'存在,则接下来是'008'

我有一个存储过程:

BEGIN
    SELECT LPAD(CAST(MAX(Line_Order) AS SIGNED INTEGER) + 1,3,'0')
    FROM bill_project_lineitems 
    WHERE Item_Id = vItem;
END

然后我有这个触发器:

CALL MaxLineOrder(new.item_id,@new.line_order )

我在之前称之为

当我尝试INSERT时,MySQL抱怨: 1415 - '不允许从触发器返回结果集'

那么我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

好的,我又读了一遍,可能我心烦意乱。 (但为什么不粘贴完整代码?)错误很明显,你 CANT 从触发器返回结果集。

假设您要发布INSERT并获取结果集。但你不能。所以你应该:

  1. INSERT移至存储过程
  2. DROP触发器
  3. CALL程序。
  4. 存储过程可以返回结果集(甚至许多结果集),因此这将起作用。我希望这就是你想要的。