Modifica degli script di installazione che creano trigger
Se l'applicazione contiene un trigger BEFORE INSERT in una tabella di origine e si prevede di inserire il dato da tale tabella di origine nella nuova tabella corrispondente, è necessario decidere se attivare il trigger prima di ogni istruzione INSERT dello script d'installazione che inserisce i dati nella nuova tabella.
Ad esempio, NEW_EVALUATION_TRIGGER (creato in "Esercitazione: creazione di un trigger che genera una chiave primaria per una riga prima dell'inserimento") viene attivato prima dell'inserimento di una riga nella tabella EVALUATIONS. Il trigger genera il numero univoco per la chiave primaria di tale riga, utilizzando EVALUATIONS_SEQUENCE.
La tabella EVALUATIONS di origine è popolata con le chiavi primarie. Se non si desidera che lo script d'installazione inserisca i nuovi valori della chiave primaria nella nuova tabella EVALUATIONS, modificare l'istruzione CREATE TRIGGER nello script d'installazione come mostrato di seguito:
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;
Inoltre, se il valore corrente della sequenza non è maggiore del valore massimo nella colonna della chiave primaria, è necessario renderlo maggiore.
È possibile modificare lo script di installazione nel foglio di lavoro o in qualsiasi editor di testo.
Di seguito sono riportate due alternative alla modifica dello script di installazione.
-
Modificare la definizione del trigger nel file di origine e ricreare lo script di installazione.
Per informazioni sulla modifica dei trigger, vedere "Modifica dei trigger".
-
Disabilitare il trigger prima di eseguire lo script di installazione dei dati e riabilitarlo in seguito.
Per informazioni sulla disabilitazione e l'abilitazione dei trigger, vedere "Disabilitazione e abilitazione dei trigger".
Vedere anche: "Creazione di trigger"