Estudio del sistema de gesti\u00f3n de bases de datos PostgreSQL 95

Estudio del sistema de gestión de bases de datos

This preview shows page 97 - 99 out of 170 pages.

Estudio del sistema de gestión de bases de datos PostgreSQL 95 || quote_ident(nombre_tabla) || ' SET ' || quote_ident(nombre_columna) || ' = ' || quote_literal(valor_columna) || ' WHERE ' ...; FUNCIONES SQL Además de poder crear procedimientos, PL/pgSQL permite también crear funciones mediante SQL. Hace falta especificar el lenguaje del procedimiento como ‘sql’ y usar sentencias SQL en vez de PL/pgSQL. No tiene estructuras de control, está restringido a sentencias SQL, no permite variables, ni evaluaciones condicionales, ni bucles. CREATE FUNCTION función_sql (texto) RETURNS tipo_devuelto TRIGGERS En algunas aplicaciones las restricciones pueden no ser suficientes para asegurar que se cumplen algunas condiciones complejas en la base de datos. Otras veces simplemente se pretende realizar ciertas acciones cuando sucede algo (inserción, modificación o borrado) en alguna tabla. Una solución a esto es usar disparadores (triggers), que permiten ordenar a PostgreSQL a realizar un procedimiento cuando sucede una acción. Para usar un trigger, primero hace falta definirlo, y luego crearlo (definir cuando se ejecuta el trigger). -Definición de un trigger: Un trigger se dispara cuando se cumple una condición, y ejecuta un tipo propio de procedimiento para triggers. Este procedimiento es similar al resto de procedimientos, pero es ligeramente más restrictivo por la forma en que se invoca. El procedimiento de un trigger se crea como una función sin parámetros y devuelve un tipo especial. PostgreSQL invocará al trigger cuando se realizan cambios en una tabla en particular. El procedimiento puede devolver el valor NULL o una fila que encaja con la estructura de la tabla que ha provocado la invocación del trigger. Dependiendo de cada caso, se tratará el valor devuelto por el procedimiento del trigger para determinar si se lleva a cabo la acción o por el contrario da un error. -Creación de un trigger: Los triggers se crean con el comando CREATE TRIGGER:
Image of page 97
Estudio del sistema de gestión de bases de datos PostgreSQL 96 CREATE TRIGGER nombre_trigger { BEFORE | AFTER } { evento [OR ...] } ON tabla FOR EACH { ROW | STATEMENT } EXECUTE PROCEDURE función ( argumentos ) Donde evento se refiere a INSERT, DELETE o UPDATE, es decir el evento sobre la tabla que ha iniciado la acción. El trigger tiene un nombre, que sirve para poder eliminarlo posteriormente: DROP TRIGGER nombre_trigger ON tabla; Una vez se invoca el trigger, éste tiene acceso tanto a los datos originales (para UPDATE y DELETE) como a los datos nuevos (para INSERT y UPDATE). También se puede pedir al trigger que se ejecute antes de que ocurra el evento, para prevenir un cambio no deseado, o para cambiar los datos que van a ser insertados o actualizados. Cuando la sentencia SQL modifica varias filas a la vez, se puede elegir que el trigger se lance para cada fila (ROW) o para todas a la vez (STATEMENT).
Image of page 98
Image of page 99

You've reached the end of your free preview.

Want to read all 170 pages?

  • Fall '19
  • Test, PostgreSQL, Microsoft SQL Server, Sistema de Gestión de Bases de Datos, Copia de seguridad, Base de datos relacional

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture