PostgreSQL

PostgreSQL Crea trigger dopo INSERT/UPDATE/DELETE

PostgreSQL Crea trigger dopo INSERT/UPDATE/DELETE
Ogni volta che un'azione di modifica definita (dichiarazione SQL INSERT, UPDATE, DELETE o TRUNCATE) viene eseguita su una tabella definita, un trigger è una serie di eventi che vengono eseguiti automaticamente. I trigger possono essere utilizzati per imporre regole aziendali, autenticare le informazioni di input e mantenere un audit trail. I trigger SQL sono implementati secondo il 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 gli errori. Inoltre, una volta costruito un trigger per qualcosa, come una tabella, il trigger viene immediatamente rimosso non appena viene rimossa la tabella. Vedremo come funzionano i trigger PostgreSQL in questo segmento.

Sintassi:

Quella che segue è la semplice sintassi per generare un trigger:

>> CREATE TRIGGER nome_trigger [BEFORE|AFTER|INSTEAD OF] nome-evento ON nome_tabella [ ----Trigger Logic ];

Ecco la spiegazione della domanda generale di cui sopra.

Per comprendere brevemente il concetto di trigger, avvia la shell PostgreSQL dalle applicazioni. Cambia il server se vuoi lavorare su un altro server, oppure premi invio dalla tastiera. Aggiungi il nome del database su cui vuoi lavorare, altrimenti lascialo così com'è e tocca invio. Come puoi vedere, al momento stiamo lavorando sulla porta 5432 come impostazione predefinita; puoi anche cambiarlo. Successivamente, fornisci un nome utente diverso da Postgres se desideri lavorare con un altro utente, oppure lascialo vuoto e premi il pulsante Invio. Ora la tua shell dei comandi è pronta per essere utilizzata.

TRIGGER al comando INSERT

Esaminiamo l'esempio di un trigger quando il comando INSERT è stato utilizzato come evento trigger. Per questo, dobbiamo creare due nuove tabelle, e.g., “impiego” e “revisione”. La tabella "impiego" conterrà le anagrafiche dei dipendenti di una specifica azienda e la tabella "verifica" conterrà le informazioni su quando i dipendenti sono entrati in azienda. Di seguito sono riportate le query per la creazione delle tabelle.

>> CREATE TABLE impiegato( ID INTEGER NOT NULL PRIMARY KEY, Nome VARCHAR(100) NOT NULL, Età VARCHAR(100) NOT NULL, Salary VARCHAR(100) NOT NULL );

>> CREATE TABLE audit( empid INTEGER NOT NULL, entry_date VARCHAR(100) NOT NULL );

Devi creare una procedura che verrà eseguita automaticamente o funzionerà quando verrà chiamato il trigger. Verrà utilizzato nel prossimo comando CREATE 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 BEGIN, seguita dall'istruzione INSERT. Questa istruzione INSERT inserisce l'ID automatico e la data-ora corrente utilizzando la funzione incorporata nella tabella "audit" e restituendo questo risultato a TRIGGER.

È ora di generare un TRIGGER usando il comando CREATE TRIGGER. Creiamo un trigger chiamato “emp_trig” sulla tabella “employ”. La clausola AFTER INSERT ON significa che questo trigger funzionerà solo dopo l'esecuzione del comando di inserimento. FOR EACH ROW significa che all'esecuzione di ogni comando INSERT, questo trigger chiamerà ed eseguirà la procedura "auditlogfunc()" creata appena prima.

>> CREATE TRIGGER emp_trig DOPO L'INSERT ON impiega PER OGNI RIGA ESEGUI PROCEDURA auditlogfunc();

È il momento di inserire alcuni dati nella tabella “impiegato”. Esegui il comando INSERT sottostante nella shell.

>> INSERIRE IN VALORI DI LAVORO (ID, Nome, Età, Stipendio) ('1', 'Paul', '34', '60000');

Dai un'occhiata alla tabella “impiego”. I dati sono stati aggiunti con successo con il comando INSERT.

Ora dai un'occhiata alla tabella "audit". Puoi vedere, è anche aggiornato a causa del trigger "emp_trig" e auditlogfunc().

TRIGGER al comando di AGGIORNAMENTO

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

Ora, crea un nuovo trigger chiamato "update_emp" usando il comando CREATE TRIGGER. Questo funzionerà solo dopo l'esecuzione della query UPDATE sulla tabella impiega e chiamerà la procedura "aggiornamento".

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

Recuperare i record di una tabella "impiegare" per visualizzare le modifiche come allegato di seguito.

Come puoi vedere nella tabella "audit", è stata riorganizzata man mano che la tabella "occupati" è stata aggiornata.

TRIGGER al comando DELETE

Apri pgAdmin 4 dalle applicazioni per lavorare su GUI PostgreSQL. Sotto lo 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 DELETE. Di seguito la tabella “emp” con alcuni record.

Ecco la tabella di audit con i due aggiornamenti precedenti.

Creare una procedura denominata “Del()” per attivare l'inserimento nella tabella “audit” all'eliminazione dei record dalla tabella “emp”.

Crea un trigger "del_trig" usando la query CREATE TRIGGER. Questo trigger eseguirà la procedura “Del” quando verrà eseguita qualche clausola DELETE sulla tabella “emp”.

Eliminiamo un record dalla tabella "emp" dove il dipendente "id" è "5". Cancellerà una riga dalla tabella "emp".

Recupera i record della tabella "emp" e dai un'occhiata. Puoi vedere che la riga è stata rimossa dove "id" era "5".

Ora estrai i record della tabella “audit” e noterai che è stata aggiornata perché è stata eseguita l'operazione DELETE sulla tabella “emp”.

Conclusione:

Abbiamo fatto quasi tutti gli esempi essenziali per comprendere il concetto di TRIGGER durante l'esecuzione delle operazioni INSERT, UPDATE e DELETE.

Installa l'ultimo gioco di strategia OpenRA su Ubuntu Linux
OpenRA è un motore di gioco di strategia in tempo reale gratuito/libero che ricrea i primi giochi di Westwood come il classico Command & Conquer: Red ...
Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...