HSQLDB:将SEQUENCE的计数器提高N.

问题描述 投票:1回答:1

在HSQLDB中,我尝试用N来提高序列的计数器。当N> 1时,我找不到任何如何做的例子,所以我试着调用NEXT VALUE FOR my_sequence N次,但是这也没有用。

例如:

DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure(OUT my_output INTEGER, OUT out_a_1 INTEGER, OUT out_a_2 INTEGER, OUT out_a_3 INTEGER, IN my_input INTEGER)
        MODIFIES SQL DATA -- NO SQL
        BEGIN ATOMIC

                DECLARE a_1 BIGINT;
                DECLARE a_2 BIGINT;
                DECLARE a_3 BIGINT;

                SET my_output = my_input;

                SET a_1 = NEXT VALUE FOR my_sequence;
                SET a_2 = NEXT VALUE FOR my_sequence;
                SET a_3 = NEXT VALUE FOR my_sequence;

                SET out_a_1 = a_1;
                SET out_a_2 = a_2;
                SET out_a_3 = a_3;
        END;

结果:计数器仅提高1,以便out_a_1 == out_a_2 == out_a_3

是否可以在一次操作中将计数器提高N?

如果没有,这样做的方法是什么?

sql stored-procedures sequence hsqldb
1个回答
1
投票

您需要将序列值插入表中。每行插入将递增序列。

DECLARE TABLE T (ID INT)
INSERT INTO T VALUES (NEXT VALUE FOR my_sequence), (NEXT VALUE FOR my_sequence)

上面的示例可用于将序列递增2。

© www.soinside.com 2019 - 2024. All rights reserved.