22 febrero, 2015

Triggers I

Hoy continuamos viendo los triggers. Los triggers son disparadores de la base de datos que se activan cuando ocurre un hecho concreto.



Para crear un disparador:


   delimiter $$ --> Indica el delimitador

   create trigger <nombre> {before|after}
   {insert|update|delete} on <tabla>

   begin

   end

 Ejemplo 1:
   create trigger ins-sum before insert on account
      for each row set adsum = 0sum + NEW.amount 

 Ejemplo 2: 
   CREATE TABLE test1(a1 INT);
   CREATE TABLE test2(a2 INT);

   DELIMITER $$

   CREATE TRIGGER testref AFTER INSERT ON test1

   FOR EACH ROW

      BEGIN

      INSTERT INTO test2 SET a2 = NEW.al; --> En la columna test2 añade el valor a1
      
      END

   --> Si es insert se utilizará NEW.<columna>
   --> si es delete se utilizará OLD.<columna>
   --> si es update se utilizarán ambas.