Estoy tratando de insertar 40 filas usando INSERT ALL INTO y no estoy seguro de cómo insertar la clave sustituta. Esto es lo que tengoINSERT ALL INTO y Sequence.nextval para una clave sustituta
BEGIN
INSERT ALL
INTO question(question_id)
VALUES (question_seq.nextval)
END
Ahora, si agrego otro INTO VALUES, aparece una violación de restricción única.
BEGIN
INSERT ALL
INTO question(question_id)
VALUES (question_seq.nextval)
INTO question(question_id)
VALUES (question_seq.nextval)
END
¿Cómo puedo actualizar las secuencias de valor para cada nextval en valores para que pueda evitar la violación de restricción único? Supuse que nextval se actualizaría automáticamente.
ACTUALIZACIÓN: No sé si esta es la mejor manera de manejar esto, pero aquí está la solución que se me ocurrió:
primero creé una función que devuelve un valor entonces me llamaron esa función en el campo ID de la cláusula VALORES
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())
¿No necesita una cláusula 'from' con su' insert all'? – Raihan
@Raihan no para insertar todo. – Robert
@Raihan perdón por eso ... tienes razón, simplemente no pegué la selección, pero tengo una. – Robert