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.

Vedere anche: "Creazione di trigger"