-2

我需要在插入时增加下一个最高字符字段 - 例如,如果存在“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 )

我之前打电话的。

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

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

4

1 回答 1

1

好吧,我又读了一遍,也许我没明白。(但为什么不粘贴完整的代码?)错误很明显,您不能从触发器返回结果集。

你想发出一个INSERT并得到一个结果集。但你不能。所以你应该:

  1. 将您的移动INSERT到存储过程
  2. DROP触发
  3. CALL步骤。

存储过程可以返回一个结果集(甚至许多结果集),所以这将起作用。我希望这是你想要的。

于 2013-05-20T01:20:20.640 回答