PostgreSQL Crear activador después de insertar/actualizar/eliminar

PostgreSQL Crear activador después de insertar/actualizar/eliminar
Siempre que se realice una acción de cambio definida (SQL Insertar, actualizar, eliminar o una declaración truncada) en una tabla definida, un desencadenante es un conjunto de eventos en serie que se ejecutan automáticamente. Los desencadenantes se pueden utilizar para imponer reglas comerciales, autenticar 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 declaración a variables y manejar errores. Además, una vez que construye un gatillo para algo, como una tabla, el disparador se retira inmediatamente tan pronto como se retira la tabla. Veremos cómo funcionan los desencadenantes de PostgreSQL a lo largo de este segmento.

Sintaxis:

La siguiente es la sintaxis simple para generar un disparador:

>> Crear disparador gatillo_name [antes | después | en lugar de] name de eventos en table_name [----- lógica de activación];

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

  • Trigger_name: Nombre de un gatillo
  • Antes, después, en lugar de: Términos que deciden cuándo estaría activo el disparador
  • Nombre del evento: Título de la ocurrencia que podría configurar el disparador (esto podría ser, ya sea de inserción o actualización o eliminación)
  • Nombre de la tabla: Especifica la tabla sobre la cual se construirá el disparador

Para comprender brevemente el concepto de activación, inicie el shell PostgreSQL desde las aplicaciones. Cambie el servidor si desea trabajar en otro servidor, o presione Entrar desde su teclado. Agregue el nombre de la base de datos en el que desea trabajar, de lo contrario, déjelo como está y toca Enter. Como puede ver, actualmente hemos trabajando en el puerto 5432 como predeterminado; También puedes cambiarlo. Después de eso, proporcione un nombre de usuario que no sea Postgres si desea trabajar con otro usuario, o de lo contrario, dejelo en blanco y presione el botón ENTER. Ahora el shell de su comando está listo para ser utilizado.

Activar el comando insertar

Veamos el ejemplo de un disparador cuando el comando insertar se ha utilizado como evento de activación. Para esto, tenemos que crear dos nuevas tablas, E.gramo., "Emplear" y "Auditoría". 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 empleado (ID entero no es una clave primaria nula, nombre varchar (100) no nulo, edad varchar (100) no nulo, salario varchar (100) no nulo);
>> Crear auditoría de tabla (Integer Empid no NULL, Entry_Date Varchar (100) no NULL);

Debe crear un procedimiento que se ejecutará automáticamente o funcione cuando se llame al disparador. Se utilizará en el comando Crear activador. Desde el siguiente comando, puede tener una idea de que hemos estado creando un procedimiento "AuditLogFunc ()", que devolverá un desencadenante como variable "$ examp_table $". La función comienza con la cláusula BEGIN, seguida de la instrucción Insertar. Esta instrucción Insertar inserta ID automática y fecha de tiempo actual utilizando la función incorporada en la tabla "Auditoría" y devuelve este resultado a disparar.

Es hora de generar un disparador usando el comando Crear activador. Creamos un desencadenante llamado "Emp_trig" en la tabla "Emplear". La cláusula después de insertar significa que este disparador solo funcionará después de la ejecución del comando insertar. Para cada fila significa en la ejecución de cada comando de inserción, este desencadenante 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". Ejecutar el siguiente comando de inserción en el shell.

>> Insertar en los valores de empleo (id, nombre, edad, salario) ('1' ',' Pablo ',' 34 ',' 60000 ');

Echa un vistazo a la tabla "Emplear". Los datos se han agregado correctamente con el comando insertar.

Ahora tenga un vistazo de la tabla de "auditoría". Puede ver, también se actualiza debido al activador "Emp_trig" y AuditLogFunc ().

Activar el comando de actualización

Ahora estaremos mirando un ejemplo de un activador utilizando el comando de actualización como un evento de activación. Tenemos que crear un nuevo procedimiento nuevamente con el nombre diferente "Actualización" como se presenta en la imagen. Este procedimiento también insertará registros en la tabla 'Auditoría' a la llamada.

Ahora, cree un nuevo disparo llamado "update_emp" usando el comando Crear activador. Esto solo funcionará después de la ejecución de la consulta de actualización en la tabla empleada y llamará al procedimiento "actualización".

Actualice la tabla "Emplear" configurando su ID en "2".

Obtenga los registros de una tabla "Emplear" para ver los cambios a continuación adjunto.

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

Activar el comando Eliminar

Abra Pgadmin 4 de aplicaciones para trabajar en GUI PostgreSQL. Bajo el esquema "prueba", descubrirá una lista de tablas. Cree una nueva tabla "EMP" y la misma tabla de "Auditoría".

Esta vez invocaremos el comando de activación por el comando Eliminar. 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 disparador "Del_trig" usando la consulta de activación Crear. Este desencadenante ejecutará el procedimiento "del" cuando se realizará una cláusula de eliminación en la tabla "EMP".

Eliminemos un registro de la tabla "EMP" donde la "identificación" del empleado es "5". Eliminará una fila de la tabla "EMP".

Obtenga los registros de la tabla "emp" y eche un vistazo. Puede ver que la fila ha sido eliminada donde la "identificación" fue "5".

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

Conclusión:

Hemos hecho casi todos los ejemplos esenciales para comprender el concepto de activación mientras realizamos operaciones de inserción, actualización y eliminación.