Я пытаюсь вставить 40 строк, используя INSERT ALL INTO, и я не уверен, как вставить суррогатный ключ. Вот что я have
BEGIN
INSERT ALL
INTO question(question_id)
VALUES (question_seq.nextval)
END
Теперь, если я добавлю еще один INTO VALUES, я получу уникальное нарушение ограничения.
BEGIN
INSERT ALL
INTO question(question_id)
VALUES (question_seq.nextval)
INTO question(question_id)
VALUES (question_seq.nextval)
END
Как я могу обновить значение nextval последовательности для каждого INTO VALUES, чтобы я мог избежать нарушения уникального ограничения? Я предполагал, что nextval будет автоматически
ОБНОВЛЕНИЕ : я не знаю, лучший ли это способ справиться с этим, но вот решение, которое я придумал:
сначала я создал функцию, которая возвращает значение затем я вызвал эту функцию в поле id предложения VALUES
create or replace
FUNCTION GET_QUESTION_ID RETURN NUMBER AS
num NUMBER;
BEGIN
SELECT UHCL_QUESTIONS_SEQ.nextval
INTO num
FROM dual;
return num;
END GET_QUESTION_ID;
INSERT ALL
INTO question(question_id)
VALUES (GET_QUESTION_ID())
INTO question(question_id)
VALUES (GET_QUESTION_ID())