Archivo del blog

sábado, 8 de abril de 2017

UF2176_13 SQL TRIGGERS







AFTER =  DESPUES      BEFIRE =  ANTES

MYSQL : TRIGGER PARA INSERT

CREATE TRIGGER nombre_tabla_afectada_AI (A=after I=Insert)
      AFTER INSERT ON nombre_tabla_afectada
      FOR EACH STATEIMENT (para sentencias)
ó    FOR EACH ROW (para registros)
      INSERT INTO nombre_tabla_registro (nombre_campos, ... )
      VALUES (
      OLD.valorAnterior, NEW.valorNuevo, CURRENT_USER(), NOW()
       )

SQL SERVER: TRIGGER PARA INSERT

CREATE TRIGGER nombre_tabla_afectadaAI
    ON tabla_afectada
    AFTER INSERT AS
    BEGIN
        INSERT INTO nombre_tabla_registro (nombre_campos,...)
        SELECT nombre_campos, ...
        FROM INSERTED
   END

CREATE TRIGGER nombre_tabla_afectadaAI
    ON tabla_afectada
    AFTER INSERT AS
    BEGIN
        IF UPDATE (nombre_campo)  -- solo si se actualiza este campo
           BEGIN
               INSERT INTO nombre_tabla_registro (nombre_campos,...)
               SELECT nombre_campos, ...
               FROM INSERTED
          END
   END




MYSQL : TRIGGER PARA DELETE

CREATE TRIGGER nombre_tabla_afectada_AD (A=after D=delete)
     AFTER DELETE ON nombre_tabla_afectada
     FOR EACH ROW
     INSERT INTO nombre_tabla_registro (nombre_campos_registro, ...)
     VALUES (
      OLD.nombre_campo_afectado, OLD.nombre_campo_afectado
     )


PARA MODIFICAR UN TRIGGER DESDE PHPMYADMIN
hacer click sobre el y cambiar los valores en el formulario



SQL SERVER : TRIGGER PARA DELETE

CREATE TRIGGER nombre_tabla_afectada
    ON tabla_afectada
    AFTER DELETE AS
    BEGIN
        INSERT INTO tabla_registro(campos,...)
        SELECT campos, ...
        FROM DELETED
    END

No hay comentarios:

Publicar un comentario