Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Data Science

Qué es y cómo usar un trigger en SQL

Philemon Delva
Philemon Delva
14/11/2023

Compartir

Mira este artículo:
  1. Qué es y cómo usar un trigger en SQL
  2. Hay dos clases de Triggers en SQL
  3. Los Triggers DML tienen diferentes tipos
  4. Ventajas de los Triggers
  5. Cómo usar un Trigger en SQL
  6. Ejemplo de Triggers en Oracle
  7. Ejemplo de Triggers en MySQL
  8. Comandos comunes
  9. Conclusión

img-capa

Cuando trabajamos con bases de datos relacionales, muchas veces necesitamos realizar una acción específica en respuesta a un evento, como una inserción (INSERT), una actualización (UPDATE) o una eliminación (DELETE). Esto es precisamente lo que nos permite hacer un trigger en SQL.

Qué es y cómo usar un trigger en SQL

Un trigger es un procedimiento almacenado en la base de datos que se ejecuta automáticamente cada vez que ocurre un evento especial en la base de datos. Por ejemplo, un desencadenante puede activarse cuando se inserta una fila en una tabla específica o cuando ciertas columnas de la tabla se actualizan.

Por lo general, estos eventos que desencadenan los triggers son cambios en las tablas mediante operaciones de inserción, eliminación y actualización de datos (insert, delete y update).

Hay dos clases de Triggers en SQL

Triggers DDL (Data Definition Language): Esta clase de Triggers se activa en eventos que modifican la estructura de la base de datos (como crear, modificar o eliminar una tabla) o en ciertos eventos relacionados con el servidor, como cambios de seguridad o actualización de eventos estadísticos.

Triggers DML (Data Modification Language): Esta es la clase más común de Triggers. En este caso, el evento de disparo es una declaración de modificación de datos; podría ser una declaración de inserción, actualización o eliminación en una tabla o vista.

Los Triggers DML tienen diferentes tipos

FOR o AFTER [INSERT, UPDATE, DELETE]: Estos tipos de Triggers se ejecutan después de completar la instrucción de disparo (inserción, actualización o eliminación).

INSTEAD OF [INSERT, UPDATE, DELETE]: A diferencia del tipo FOR (AFTER), los Triggers INSTEAD OF se ejecutan en lugar de la instrucción de disparo. En otras palabras, este tipo de trigger reemplaza la instrucción de disparo. Son de gran utilidad en los casos en los que es necesario tener integridad referencial entre bases de datos.

Ventajas de los Triggers

  • Generar automáticamente algunos valores de columna derivados.
  • Aplicar la integridad referencial.
  • Registro de eventos y almacenamiento de información sobre el acceso a la tabla.
  • Auditoría.
  • Replicación sincrónica de tablas.
  • Imponer autorizaciones de seguridad.
  • Prevenir transacciones inválidas.

Cómo usar un Trigger en SQL

La instrucción CREATE TRIGGER permite crear un nuevo trigger que se activa automáticamente cada vez que ocurre un evento, como INSERT, DELETE o UPDATE, en una tabla.

La sintaxis de la instrucción CREATE TRIGGER:

CREATE  TRIGGER  [Nombre_Trigger] // es el nombre definido por el usuario para el nuevo Trigger
ON  [Nombre_tabla] // es la tabla a la que se aplica Trigger.
AFTER {[INSERT],[UPDATE],[DELETE]} 
[NOT  FOR  REPLICATION] // Esta opción indica a SQL Server que no active el disparador cuando la modificación de datos se realiza como parte de un proceso de replicación.
AS
{sql_statements}

La sintaxis anterior es genérica, pero sirve de base para la mayoría de bases de datos, como veremos a continuación.

Ejemplo de Triggers en Oracle

Oracle también permite especificar el evento que activará el trigger y el momento de ejecución.

Un trigger es un bloque llamado PL/SQL (un lenguaje para desarrollar programas dentro del servidor de base de datos Oracle) almacenado en la base de datos Oracle y se ejecuta automáticamente cuando ocurre un evento de trigger.

En Oracle, puedes definir procedimientos que se ejecutan implícitamente cuando se emite una instrucción INSERT, UPDATE o DELETE en la tabla asociada. Estos procedimientos se llaman triggers de base de datos.

Existen seis instrucciones CREATE TRIGGER según sus puntos de disparo.

CREATE  [OR  REPLACE]  TRIGGER  trigger_name
{BEFORE  |  AFTER  }  triggering_event  ON  table_name
[FOR  EACH  ROW]
[FOLLOWS  |  PRECEDES  another_trigger]
[ENABLE  /  DISABLE  ]
[WHEN  condition]
DECLARE
declaration  statements
BEGIN
executable  statements
EXCEPTION
exception_handling  statements
END;

Si no incluyes las palabras clave OR REPLACE, recibirás un mensaje de error que indica que otro objeto está utilizando el nombre de tu trigger.

Ejemplo de Triggers en MySQL

El Trigger en MySQL es un objeto de base de datos asociado a una tabla. Se activa cuando se realiza una acción definida en la tabla. El trigger se puede ejecutar cuando realizas una de las siguientes instrucciones de MySQL en la tabla: INSERT, UPDATE y DELETE, y se puede activar antes o después del evento.

delimiter //
CREATE TRIGGER nombre_Trigger
AFTER INSERT ON usuario_voto
FOR EACH ROW
BEGIN
Aquí se coloca la estructura de Trigger.
END //
delimiter ;

Comandos comunes

Para eliminar un trigger, puedes usar el comando: DROP TRIGGER nombre_del_trigger;

Para ver todos los triggers, puedes usar el comando: SHOW TRIGGERS;

Conclusión

Hemos visto que los triggers en SQL son muy útiles cuando necesitamos disparar eventos de forma automática cuando ocurre algún eventos automáticamente cuando ocurre un evento importante para nosotros, como una inserción (INSERT) en una tabla de intereses. De esta forma, los valores de otras tablas deberían actualizarse automáticamente y podemos lograrlo con triggers.

¿Te gustó el artículo y quieres saber más sobre SQL y triggers? Aquí en Alura, ofrecemos una Formación SQL con MySQL y una Formación SQL con Microsoft SQL Server 2019 que te enseñará cómo utilizar triggers y mucho más.

Este artículo fue traducido para Alura por Philemon Delva

Este artículo fue traducido para Alura Latam por Brenda Souza

Artículo Anterior
Power BI: desarrolla dimensiones de calendario con el lenguaje M de forma práctica
Siguiente Artículo
¿Qué es Tableau?

Ver otros artículos sobre Data Science

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast