Triggers MYSQL

Posted by Yonatan Grajeda Cuesi On domingo, 15 de enero de 2012 0 comentarios

Mysql es un DBMS que ha ganado campo a nivel empresarial ya que es una de los mejores DBMS en el mercado ademas de ser Open Source.

Lo que se vera ahorita es la utilización de Triggers o disparadores en esta herramienta estos son procedimientos que se ejecutan cuando sucede algún evento como eliminación , actualización o inserción de datos de una tabla especificada cuando se crea dicho Trigger.
La sintaxis de un trigger es la siguiente:
CREATE TRIGGER name_trigger evento_Disparador ON name_tabla 
FOR EACH ROW
BEGIN
CUERPO;
END


name_trigger:
Indicara el nombre que se desea dar al trigger.

name_tabla:
Nombre de la tabla a la cual se desea agregar el evento.

cuerpo:
Estara todo los procesos aceptados por mysql como algun insert delete o incluso whiles, if, case cabe destacar que no existe for en procedimientos almacenados.

evento_Disparador:
En los eventos de los triggers estan BEFORE UPDATE, BEFORE INSERT, BEFORE DELETE, AFTER UPDATE, AFTER INSERT, AFTER DELETE.
Algo tambien bastante importante es el uso de los alias NEW y OLD en las columnas estos alias sirven para referirse a las columnas como por ejemplo un update si se quiere saber el monto de la una cantidad antes de actualizarse se colocaría OLD.cantidad o por el contrario se coloca NEW.cantidad me podran decir para que serviria esto supongamos la base de datos de una compañia telefonica cuando nosotros ingresamos una recarga y antes teniamos saldo se tendria que sumar el saldo anterior (OLD.saldo) con un nuevo saldo(new saldo) ejemplo.

CREATE TRIGGER trigger_saldo Before Update ON Saldo
FOR EACH ROW
BEGIN
  SET NEW.saldo=NEW.saldo+OLD.saldo;
END

SET es para asignar el valor es propio  de la sintaxis de Mysql y lo que se hace aqui es un disparador que cada vez que se actualice la tabla saldo que se sume el saldo viejo con el nuevo y se asgine al campo que va ingresar solo se pueden asignar valores a los campos NEW. campo a los OLD.campo no se les puede asignar valores.
El alias OLD sirve para  DELETE y UPDATE
El alias NEW UPDATE, INSERT

0 comentarios:

Publicar un comentario