PostgreSQL Crea trigger dopo l'inserto/aggiornamento/elimina

PostgreSQL Crea trigger dopo l'inserto/aggiornamento/elimina
Ogni volta che un'azione di modifica definita (inserzione SQL, aggiornamento, eliminazione o dichiarazione di troncato) viene condotta su una tabella definita, un trigger è un set di eventi in serie che vengono eseguiti automaticamente. I trigger possono essere utilizzati per imporre regole aziendali, autenticare le informazioni di input e mantenere una pista di audit. I trigger SQL sono implementati in base al formato SQL. Include strutture utilizzate in diversi linguaggi di programmazione che consentono di dichiarare variabili locali, monitorare il flusso del processo con dichiarazioni, allocare i risultati delle istruzioni alle variabili e gestire errori. Inoltre, una volta che si costruisce un grilletto per qualcosa, come una tabella, il grilletto viene immediatamente rimosso non appena la tabella viene rimossa. Vedremo come i trigger di PostgreSQL funzionano in questo segmento.

Sintassi:

Quanto segue è la semplice sintassi per generare un trigger:

>> Crea trigger trigger_name [prima | dopo | invece di] eventi name su table_name [---- logica trigger];

Ecco la spiegazione della domanda generale di cui sopra.

  • Trigger_name: Nome di un trigger
  • Prima, dopo, invece di: Termini che decidono quando il trigger sarebbe attivo
  • Nome dell'evento: Titolo del verificarsi che potrebbe scatenare il trigger (questo potrebbe essere, sia da inserto o aggiornamento o elimina)
  • Tavolo: Specifica la tabella su cui verrà costruito il trigger

Per comprendere brevemente il concetto di trigger, lancia la shell PostgreSQL dalle applicazioni. Modifica il server se si desidera lavorare su un altro server, oppure premere Invio dalla tastiera. Aggiungi il nome del database su cui si desidera lavorare, altrimenti, lascialo così com'è e tocca Invio. Come puoi vedere, attualmente abbiamo lavorato sulla porta 5432 come impostazione predefinita; Puoi anche cambiarlo. Successivamente, fornisci un nome utente diverso da Postgres se si desidera lavorare con un altro utente, oppure lasciarlo vuoto e premere il pulsante Invio. Ora la tua shell di comando è pronta per essere utilizzata.

Trigger al comando Inserisci

Diamo un'occhiata all'esempio di un trigger quando il comando insert è stato usato come evento trigger. Per questo, dobbiamo creare due nuove tabelle, E.G., "Impiega" e "audit". La tabella "impiega" conterrà i record personali dei dipendenti da una società specifica e la tabella "audit" conterrà le informazioni su quando i dipendenti si sono uniti all'azienda. Le domande per la creazione delle tabelle sono riportate di seguito.

>> Crea tabella impiega (ID intero non null chiave primaria, nome varchar (100) non null, età varchar (100) non null, salario varchar (100) non null);
>> Crea audit della tabella (empid integer non null, entry_date varchar (100) non null);

È necessario creare una procedura che verrà automaticamente eseguita o funzionante quando verrà chiamato il trigger. Verrà utilizzato nel comando successivo Crea trigger. Dal comando seguente, puoi avere un'idea che abbiamo creato una procedura "auditlogfunc ()", che restituirà un trigger come variabile "$ examp_table $". La funzione inizia con la clausola iniziale, seguita dall'istruzione Insert. Questa istruzione Insert inserisce l'ID automatico e la data di tempo corrente utilizzando la funzione integrata nella tabella "Audit" e restituendo questo risultato per attivare.

È tempo di generare un trigger utilizzando il comando Crea trigger. Creiamo un trigger chiamato "emp_trig" sulla tabella "impiega". La clausola dopo l'inserto significa che questo trigger funzionerà solo dopo l'esecuzione del comando insert. Per ogni riga significa all'esecuzione di ogni comando di insert, questo trigger chiamerà ed eseguirà la procedura "AuditlogFunc ()" creata appena prima.

>> Crea trigger EMP_TRig dopo l'inserto durante l'uso per ogni riga Esegui procedura auditlogFunc ();

È tempo di inserire alcuni dati nella tabella "impiega". Eseguire il comando inserisci seguente nella shell.

>> Inserisci in Employ (ID, Nome, Age, Stipending) Valori ('1', 'Paul', '34', '60000');

Dai un'occhiata al tavolo "impiega". I dati sono stati aggiunti correttamente con il comando insert.

Ora fai uno sguardo al tavolo "audit". Puoi vedere, è anche aggiornato a causa di trigger "emp_trig" e auditlogFunc ().

Trigger al comando di aggiornamento

Ora esamineremo un esempio di trigger che utilizza il comando di aggiornamento come evento trigger. Dobbiamo creare di nuovo una nuova procedura con il diverso nome "aggiornamento" come presentato nell'immagine. Questa procedura inserirà anche i record nella tabella "audit" su chiamata.

Ora, crea un nuovo trigger denominato "update_emp" utilizzando il comando Crea trigger. Questo funzionerà solo dopo l'esecuzione della query di aggiornamento sulla tabella e chiamerà la procedura "aggiornamento".

Aggiorna la tabella "impiega" impostando il suo ID su "2".

Prendi i record di una tabella "impiega" per visualizzare le modifiche come aggiunte di seguito.

Come puoi vedere sul tavolo "audit", è stato riorganizzato quando la tabella "impiega" è stata aggiornata.

Trigger al comando Elimina

Apri PGADMIN 4 dalle applicazioni al lavoro su GUI PostgreSQL. In base allo schema "test", scoprirai un elenco di tabelle. Crea una nuova tabella "EMP" e la stessa tabella "audit".

Questa volta invocheremo il comando trigger con il comando Elimina. Di seguito è riportata la tabella "EMP" con alcuni record.

Ecco la tabella di audit con i due aggiornamenti precedenti.

Crea una procedura denominata "Del ()" per attivare l'inserimento nella tabella "Audit" al momento dell'eliminazione dei record dalla tabella "EMP".

Crea un trigger "del_trig" utilizzando la query di trigger create. Questo trigger eseguirà la procedura "Del" quando una clausola di eliminazione verrà eseguita sulla tabella "EMP".

Eliminiamo un record dalla tabella "EMP" in cui il dipendente "ID" è "5". Eliminerà una riga dalla tabella "EMP".

Prendi i record della tabella "EMP" e dai un'occhiata. Puoi vedere che la riga è stata rimossa in cui "ID" era "5".

Ora estrai i record della tabella "audit" e noterai che è stato aggiornato perché l'operazione di eliminazione è stata eseguita sulla tabella "EMP".

Conclusione:

Abbiamo fatto quasi ogni esempio essenziale per comprendere il concetto di trigger durante l'esecuzione di inserti, aggiornamento ed elimina le operazioni.