Как получить следующее значение для нескольких последовательностей в разных строках в db2? - PullRequest
0 голосов
/ 28 мая 2018

Я использую этот запрос

SELECT NEXT VALUE FOR SEQUENCENAME1 FROM DUMMY_TABLE UNION
SELECT NEXT VALUE FOR SEQUENCENAME2 FROM DUMMY_TABLE

Это не приводит к получению ответа в несколько строк.Предложите мне какое-то решение для этого, потому что мне нужно получить следующее значение для тысяч последовательностей

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Попробуйте использовать UNION ALL:

SELECT NEXT VALUE FOR SEQUENCENAME1 FROM DUMMY_TABLE UNION ALL
SELECT NEXT VALUE FOR SEQUENCENAME2 FROM DUMMY_TABLE;

Если выражения возвращают одно и то же значение, то UNION вернет только одну строку - удалит дубликаты.

0 голосов
/ 29 мая 2018

Вы можете использовать этот запрос

VALUES (NEXT VALUE FOR SEQUENCENAME1)
,      (NEXT VALUE FOR SEQUENCENAME2)

, хотя вы не будете знать, какая строка является какой-то, так что, возможно, это

VALUES ('SEQ1', NEXT VALUE FOR SEQUENCENAME1)
,      ('SEQ2', NEXT VALUE FOR SEQUENCENAME2)
0 голосов
/ 28 мая 2018

Чтобы ответить на ваш основной вопрос: вы можете проверить SYSCAT.SEQUENCES для метаданных о последовательностях.

Атрибуты / столбцы START и NEXTCACHEFIRSTVALUE представляют интерес для вас.Обратите внимание, что значения последовательности обычно кэшируются для повышения производительности, поэтому вам следует помнить об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...