Qualcuno può spiegare la differenza tra trigger "prima" e "dopo" in Oracle 10g con un esempio?differenza prima e dopo il trigger in Oracle
risposta
In primo luogo, inizierò la mia risposta definendo grilletto: un grilletto è una stored procedure che viene eseguito quando si aggiunge una riga, modificato o cancellato.
trigger possono eseguire PRIMA è preso l'azione o DOPO viene eseguita l'azione.
BEFORE
I trigger vengono solitamente utilizzati quando è necessario eseguire la convalida prima di accettare la modifica. Corrono prima che venga apportata una modifica al database. Supponiamo che tu esegua un database per una banca. Hai un tavolo accounts
e un tavolo transactions
. Se un utente effettua un prelievo dal suo account, vorrai assicurarti che l'utente abbia abbastanza crediti nel suo account per il suo prelievo. Il trigger BEFORE
consentirà di farlo e impedirà l'inserimento della riga in transactions
se il saldo in accounts
non è sufficiente.
AFTER
I trigger vengono solitamente utilizzati quando le informazioni devono essere aggiornate in una tabella separata a causa di una modifica. Corrono dopo che le modifiche sono state apportate al database (non necessariamente impegnate). Torniamo al nostro esempio precedente. Dopo una transazione riuscita, è necessario aggiornare balance
nella tabella accounts
. Un trigger AFTER
ti consentirà di fare esattamente questo.
+1 Vorrei solo aggiungere che alcune validazioni di trigger devono essere eseguite in DOPO la riga trigger, perché è solo nei trigger AFTER che i valori delle colonne sono "fissi". In un trigger BEFORE è possibile convalidare e passare alcune regole complesse in base al valore di: NEW.col solo per il valore di: NEW.col da modificare in seguito nel trigger in modo che la regola venga ora violata. –
Non sono completamente sicuro di cosa ti interessa sapere, quindi terrò questo fondamentale.
Prima Trigger
- Come per il nome, questi trigger vengono lanciati prima di creare la riga della tabella. Successivamente, poiché la riga non è stata ancora creata, hai pieno accesso al campo: new.table_element. Ciò consente la pulizia e l'uniformità dei dati se si tenta di inserire/aggiornare dati indesiderati/non corretti. Questo è solo un esempio di base, ma è necessario utilizzare il trigger precedente ogni volta che è necessario accedere ai dati ": new".
Dopo Trigger
- Dal momento che i successivi trigger viene attivato una volta che la fila è già stato creato, questi trigger sono in genere utilizzati quando si vuole la logica che si verifichi a causa della fila. Ad esempio, se si dispone di una tabella degli indirizzi e un utente aggiorna il proprio indirizzo, è possibile aggiornare gli ID di riferimento degli indirizzi in una tabella xrif al momento della creazione (se si conservano anche tutti gli indirizzi precedenti). Inoltre, a differenza del trigger precedente, non si ha accesso a modificare nessuno dei valori della colonna poiché la riga esiste già nella tabella.
PRIMA TRIGGER vengono utilizzati quando l'azione di attivazione deve determinare se le istruzioni di attivazione devono essere consentite o meno. Utilizzando BEFORE TRIGGERS l'utente può eliminare l'elaborazione non necessaria dell'istruzione di attivazione ma, DOPO I TRIGGERATORI vengono utilizzati quando le istruzioni di attivazione dovrebbe essere completato prima di eseguire l'azione di attivazione.
Si prega di modificare la risposta esistente, piuttosto che duplicare un altro. – wonea
- 1. ORACLE Rollback e trigger
- 2. Creazione di un trigger in Oracle Express
- 3. Creazione di trigger su JDBC (Oracle)
- 4. WPF templating differenza tra trigger e visualStateManager
- 5. Trigger Oracle per creare un autonumber
- 6. Ottenere il valore che ha attivato il trigger Oracle
- 7. Come definire un trigger ON COMMIT in Oracle?
- 8. UPDATE Stessa riga dopo UPDATE in Trigger
- 9. Trovare sequenze e trigger associati con una tabella Oracle
- 10. Prima e dopo In Local.xml Magento?
- 11. Come inviare parametri arbitrari al trigger Oracle?
- 12. Differenza tra oracle DATE e TIMESTAMP
- 13. SQL Server dopo l'aggiornamento trigger
- 14. ottenere il valore OLD in MySQL trigger dopo l'aggiornamento Dichiarazione
- 15. come posso ottenere il testo prima e dopo il "-" (trattino)
- 16. MySQL Trigger attivo dopo l'inserimento
- 17. setOnFocusChangeListener - Trigger dopo ogni carattere
- 18. È possibile disabilitare un trigger Oracle per la sessione corrente?
- 19. Come sviluppare un trigger after serverror in Oracle?
- 20. Chiama il proc memorizzato dopo il trigger di inserimento
- 21. Trigger MySQL prima del valore Inserimento Controllo
- 22. Differenza tra drop e drop Purge in Oracle
- 23. C'è qualche differenza tra "! =" E "<>" in Oracle Sql?
- 24. LaTeX vuoto dopo il numero e prima del testo
- 25. come visualizzare l'anteprima di un'immagine prima e dopo il caricamento?
- 26. Qual è la differenza tra Behaviors e Event Trigger?
- 27. eseguire codice prima e dopo la specifica
- 28. AspectJ "intorno" e "proseguire" con "prima/dopo"
- 29. Javascript su (prima e dopo) ogni chiamata Ajax
- 30. Specs2 e @ Prima/@ Dopo-come metodi
Non ero ancora sicuro di cosa stavi cercando in termini di semplicità, quindi ho cancellato la mia risposta. Qualcun altro potrebbe avere una buona idea. –
Per ogni piccolo dubbio sto postando una domanda nello stack overflow senza pensare .....(penso che non dovrei fare) .... Ho capito il concetto di trigger ora.Dunque avanti penserò prima di postare la domanda ... – Jagan