Это должно (надеюсь) быть быстрым, к сожалению, сегодня я немного неспокойно и нуждаюсь в вашей помощи.Увеличение значения в mutliple строке Инструкция INSERT
Я в основном написал заявление INSERT со следующей структурой, чтобы вставить несколько строк с помощью одного оператора:
INSERT INTO TABLE_TO_INSERT_INTO
SELECT
-- ...,
-- ...,
-- ...,
(SELECT MAX(ID)+1 FROM SOME_TABLE) As ID,
-- ...,
-- ...,
FROM
(
-- Subqueries and Joins here
-- ...
) ;
Как правило, это работает прекрасно, но для одной части: идентификатор.
Он должен быть уникальным (ограничение этого обязательно), но с текущим способом выбора идентификатора, который не имеет места, поскольку он использует выбранное значение для всех строк, вставленных с помощью вышеуказанного утверждения ,
Есть ли способ принудительного повторного использования части (SELECT MAX(ID)+1 FROM SOME_TABLE) As ID
после каждой вставленной строки?
Я действительно не хочу использовать триггер, но вместо этого реализую его на основе чистого SQL.
Я надеюсь, что у кого-то есть решение, я сегодня в недоумении и не могу его увидеть. Заранее спасибо!
Try использовать последовательность выбора ...., seq_name.nextval, .... . –
Также см. [Этот вопрос] (http://stackoverflow.com/q/17210835/266304) для некоторых проблем с использованием 'max (id) + 1' в целом. –