PostgreSQL

PostgreSQL Create Trigger después de INSERT / UPDATE / DELETE

PostgreSQL Create Trigger después de INSERT / UPDATE / DELETE
Siempre que se realiza una acción de cambio definida (declaración SQL INSERT, UPDATE, DELETE o TRUNCATE) en una tabla definida, un disparador es una serie de eventos que se ejecutan automáticamente. Los activadores se pueden utilizar para imponer reglas comerciales, autenticar la información de entrada y mantener una pista de auditoría. Los disparadores SQL se implementan de acuerdo con el formato SQL. Incluye estructuras utilizadas en varios lenguajes de programación que le permiten declarar variables locales, monitorear el flujo del proceso con declaraciones, asignar resultados de declaraciones a variables y manejar errores. Además, una vez que construye un disparador para algo, como una mesa, el disparador se quita inmediatamente tan pronto como se quita la mesa. Veremos cómo funcionan los desencadenadores de PostgreSQL a lo largo de este segmento.

Sintaxis:

La siguiente es la sintaxis simple para generar un disparador:

>> CREAR TRIGGER nombre_disparador [ANTES | DESPUÉS | EN LUGAR DE] nombre-evento ON nombre_tabla [---- Lógica del disparador];

Aquí está la explicación de la consulta general anterior.

Para comprender brevemente el concepto de disparador, inicie el shell de PostgreSQL desde las aplicaciones. Cambie el servidor si desea trabajar en otro servidor, o presione enter desde su teclado. Agregue el nombre de la base de datos con la que desea trabajar; de lo contrario, déjela como está y toque enter. Como puede ver, actualmente estamos trabajando en el puerto 5432 por defecto; también puedes cambiarlo. Después de eso, proporcione un nombre de usuario que no sea Postgres si desea trabajar con otro usuario, o déjelo en blanco y presione el botón Enter. Ahora su shell de comandos está listo para ser utilizado.

GATILLO al comando INSERT

Veamos el ejemplo de un disparador cuando el comando INSERT se ha utilizado como un evento disparador. Para ello, tenemos que crear dos nuevas tablas, e.gramo., "Emplear" y "auditar". La tabla "emplear" contendrá los registros personales de los empleados de una empresa específica y la tabla "auditoría" contendrá la información sobre cuándo los empleados se unieron a la empresa. Las consultas para crear las tablas se dan a continuación.

>> CREAR TABLA emplear (ID INTEGER NOT NULL PRIMARY KEY, Nombre VARCHAR (100) NOT NULL, Edad VARCHAR (100) NOT NULL, Salario VARCHAR (100) NOT NULL);

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

Tienes que crear un procedimiento que se ejecutará o funcionará automáticamente cuando se llame al disparador. Se utilizará en el próximo comando CREATE TRIGGER. Desde el siguiente comando, puede tener una idea de que hemos estado creando un procedimiento "auditlogfunc ()", que devolverá un disparador como variable "$ examp_table $". La función comienza con la cláusula BEGIN, seguida de la instrucción INSERT. Esta declaración INSERT inserta la identificación automática y la fecha y hora actual utilizando la función incorporada en la tabla de "auditoría" y devolviendo este resultado a TRIGGER.

Es hora de generar un TRIGGER usando el comando CREATE TRIGGER. Creamos un disparador llamado "emp_trig" en la tabla "emplear". La cláusula AFTER INSERT ON significa que este disparador solo funcionará después de la ejecución del comando de inserción. PARA CADA FILA significa que tras la ejecución de cada comando INSERT, este disparador llamará y ejecutará el procedimiento "auditlogfunc ()" creado justo antes.

>> CREAR DISPARADOR emp_trig DESPUÉS DE INSERTAR EN emplear PARA CADA FILA EJECUTAR PROCEDIMIENTO auditlogfunc ();

Es hora de insertar algunos datos en la tabla "emplear". Ejecute el siguiente comando INSERT en el shell.

>> INSERT INTO emplear (ID, Nombre, Edad, Salario) VALORES ('1', 'Paul', '34', '60000');

Eche un vistazo a la tabla "emplear". Los datos se han agregado correctamente con el comando INSERT.

Ahora eche un vistazo a la tabla "auditoría". Como puede ver, también se actualiza debido al disparador "emp_trig" y auditlogfunc ().

GATILLO al comando ACTUALIZAR

Ahora veremos un ejemplo de un disparador que usa el comando ACTUALIZAR como un evento disparador. Tenemos que crear un nuevo procedimiento nuevamente con el nombre diferente "actualizar" como se presenta en la imagen. Este procedimiento también insertará registros en la tabla de 'auditoría' al recibir una llamada.

Ahora, cree un nuevo disparador llamado "update_emp" usando el comando CREATE TRIGGER. Esto solo funcionará después de la ejecución de la consulta ACTUALIZAR en la tabla de empleo y llamará al procedimiento "actualización".

Actualice la tabla "emplear" estableciendo su ID en "2".

Obtenga los registros de una tabla "emplear" para ver los cambios como se adjunta a continuación.

Como puede ver en la tabla "auditoría", se ha reorganizado a medida que se actualizó la tabla "emplear".

GATILLO al comando BORRAR

Abra pgAdmin 4 desde aplicaciones para trabajar en GUI PostgreSQL. En la "prueba" del esquema, encontrará una lista de tablas. Cree una nueva tabla "emp" y la misma tabla de "auditoría".

Esta vez invocaremos el comando de activación mediante el comando DELETE. A continuación se muestra la tabla "emp" con algunos registros.

Aquí está la tabla de auditoría con las dos actualizaciones anteriores.

Cree un procedimiento llamado "Del ()" para activar la inserción en la tabla "auditoría" al eliminar los registros de la tabla "emp".

Cree un desencadenador "del_trig" mediante la consulta CREATE TRIGGER. Este disparador ejecutará el procedimiento "Del" cuando se realice alguna cláusula DELETE en la tabla "emp".

Eliminemos un registro de la tabla "emp" donde el "id" del empleado es "5". Eliminará una fila de la tabla "emp".

Obtenga los registros de la tabla "emp" y échele un vistazo. Puede ver que la fila se ha eliminado donde el "id" era "5".

Ahora extraiga los registros de la tabla "auditoría" y notará que se ha actualizado porque la operación DELETE se ha realizado en la tabla "emp".

Conclusión:

Hemos realizado casi todos los ejemplos esenciales para comprender el concepto de TRIGGER al realizar operaciones INSERT, UPDATE y DELETE.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...