Você está na página 1de 2

-- CAIO FELIPE

-- 1546368

USE triger;

-- -----------------------------------------------------
-- Table `triger`.`clientes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `triger`.`clientes` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`primeiro_nome` VARCHAR(45) NULL DEFAULT NULL,
`ultimo_nome` VARCHAR(50) NULL DEFAULT NULL,
`data_cadastro` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = latin1;

-- -----------------------------------------------------
-- Table `triger`.`clientes_log`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `triger`.`clientes_log` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`primeiro_nome` VARCHAR(45) NULL DEFAULT NULL,
`ultimo_nome` VARCHAR(45) NULL DEFAULT NULL,
`primeiro_nome_alterado` VARCHAR(45) NULL DEFAULT NULL,
`ultimo_nome_alterado` VARCHAR(45) NULL DEFAULT NULL,
`alterado_em` TIMESTAMP NULL DEFAULT NULL,
`usuario` VARCHAR(45) NULL DEFAULT NULL,
`acao` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;

-- -----------------------------------------------------
-- Table `triger`.`clientes_log`
-- -----------------------------------------------------

INSERT INTO clientes (primeiro_nome,ultimo_nome) VALUES ('Pedro','Santos');

INSERT INTO usuario (primeiro_nome,ultimo_nome) VALUES ('joao','pedro');

UPDATE clientes SET primeiro_nome = "PAULO", ultimo_nome= "Pereira"


WHERE id = 4;

UPDATE clientes SET primeiro_nome = "José", ultimo_nome= "Tiago"


WHERE id = 5;

SELECT * FROM clientes_log;

SELECT * FROM clientes;

DROP TRIGGER cliente;


DROP TRIGGER log_cliente;

DELIMITER $$
CREATE TRIGGER log_cliente AFTER INSERT
ON clientes
FOR EACH ROW
BEGIN
INSERT INTO clientes_log
(`primeiro_nome` , `ultimo_nome` , `alterado_em` , `usuario` , `acao` )

VALUES
(NEW.primeiro_nome, NEW.ultimo_nome, CURRENT_TIMESTAMP(), (SELECT
User()), 'Incluido');
END
$$ DELIMITER ;

DELIMITER $$
CREATE TRIGGER log_cliente_update AFTER UPDATE
ON clientes
FOR EACH ROW
BEGIN
INSERT INTO clientes_log
(`primeiro_nome` , `ultimo_nome` ,
`primeiro_nome_alterado`,`ultimo_nome_alterado`, `alterado_em` , `usuario` , `acao`
)
VALUES
(OLD.primeiro_nome, OLD.ultimo_nome,NEW.primeiro_nome,NEW.ultimo_nome,
CURRENT_TIMESTAMP(), (SELECT User()), 'Alterado');
END

$$ DELIMITER ;

Você também pode gostar