Edición de Scripts de Instalación que Crean Disparadores
Si su aplicación tiene un disparador BEFORE INSERT en una tabla fuente y inserta datos de esa tabla fuente en la nueva tabla correspondiente, debe decidir si desea que el disparador arranque datos antes de cada sentencia INSERT del script de instalación inserte datos en la nueva tabla.
Por ejemplo, NEW_EVALUATION_TRIGGER (creado en "Tutorial: Creating a Trigger that Generates a Primary Key for a Row Before It Is Insert") se arranca antes de insertar una fila en la tabla EVALUATIONS. El disparador genera el número único para la clave primaria de esa fila, mediante EVALUATIONS_SEQUENCE.
La tabla de origen EVALUATIONS se rellena con claves primarias. Si no desea que el script de instalación coloque el nuevo valor de clave primaria en la tabla EVALUATIONS, debe editar la sentencia CREATE TRIGGER en el script de instalación, como se muestra en negrita.
CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
IF :NEW.evaluation_id IS NULL THEN
:NEW.evaluation_id := evaluations_sequence.NEXTVAL
END IF;
END;
Además, si el valor actual de la secuencia no es mayor que el valor máximo de la columna de clave primaria, debe hacerlo mayor.
Puede editar el script de instalación en la hoja de trabajo o en cualquier editor de texto.
Los siguientes pasos son dos alternativas para editar la secuencia de comandos de instalación:
-
Cambiar la definición del disparador en el archivo de origen y, después, volver a crear el archivo de instalación.
Para obtener más información sobre el cambio de disparadores, consulte "Cambio de Disparadores".
-
Desactive el disparador antes de ejecutar el script de instalación de datos y, después, vuelva a activarlo.
Para obtener información sobre la desactivación y activación de disparadores, consulte "Desactivación y Activación de Disparadores".
Consulte también: "Creación de Disparadores"