Ir para conteúdo
Fórum Script Brasil

Nicolas Alves

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Nicolas Alves

Nicolas Alves's Achievements

0

Reputação

  1. /* Boa Tarde Pessoal, gostaria de tirar uma duvida em relação as TRIGGERS, uso como os tutorais com OLD. para pegar os dados antes de serem apagados, e tento criar um metodo de backup com as Triggers mas dá um erro no MYSQL 8.0 que está alguma coisa errada entre o codigo dentro das Triggers e já não sei o que fazer, alguém consegue me ajudar? vou passar todo meu codigo por aqui */ CREATE DATABASE AMERICANOS; --AMERICANOS-- USE AMERICANOS; CREATE TABLE FUNC_AMERICANOS( IDFUNC_AMERICANOS INT PRIMARY KEY AUTO_INCREMENT, NOME VARCHAR(30) NOT NULL, SEXO ENUM('Masculino','Feminino','Transgênero','Neutro', 'Não-binário','Outros') NOT NULL, CARGO VARCHAR(30) NOT NULL, SALARIO FLOAT (10,2) NOT NULL, EMAIL VARCHAR(50) UNIQUE, CPF VARCHAR(15) NOT NULL UNIQUE, ); CREATE TABLE ENDERECO( IDENDERECO INT PRIMARY KEY AUTO_INCREMENT, RUA VARCHAR(30) NOT NULL, BAIRRO VARCHAR(30) NOT NULL, CIDADE VARCHAR(30) NOT NULL, ESTADO CHAR(2) NOT NULL, ID_FUNC_AMERICANOS INT UNIQUE ); CREATE TABLE TELEFONE( IDTELEFONE INT PRIMARY KEY AUTO_INCREMENT, TIPO ENUM('RES','COM','CEL') NOT NULL, NUMERO VARCHAR(15) NOT NULL, ID_FUNC_AMERICANOS INT ); --TABELA BACKUP E TRIGGER-- CREATE TABLE BKP_FUNC_AMERICANOS( IDBACKUP INT PRIMARY KEY AUTO_INCREMENT, IDFUNC_AMERICANOS INT, NOME VARCHAR(30), SEXO VARCHAR(15), CARGO VARCHAR(30), SALARIO FLOAT(10,2), EMAIL VARCHAR(50), CPF VARCHAR(15) DATA DATETIME, USUARIO VARCHAR(30), EVENTO VARCHAR(20) ); DELIMITER . CREATE TRIGGER BACKUP_FUNC_AMERICANOS BEFORE DELETE ON FUNC_AMERICANOS FOR EACH ROW BEGIN INSERT INTO BKP_FUNC_AMERICANOS VALUES (NULL,OLD.IDFUNC_AMERICANOS,OLD.NOME,OLD.SEXO, OLD.CARGO,OLD.SALARIO,OLD.EMAIL,OLD.CPF, NOW(),CURRENT_USER(),'DEMITIDO'); END . DELIMITER ; /* CONSTRAINTS E FOREIGN KEYS */ ALTER TABLE ENDERECO ADD CONSTRAINT FK_ENDERECO_FUNC_AMERICANOS FOREIGN KEY(ID_FUNC_AMERICANOS) REFERENCES FUNC_AMERICANOS(IDFUNC_AMERICANOS); ALTER TABLE TELEFONE ADD CONSTRAINT FK_TELEFONE_FUNC_AMERICANOS FOREIGN KEY(ID_FUNC_AMERICANOS) REFERENCES FUNC_AMERICANOS(IDFUNC_AMERICANOS); --DADOS DE FUNCIONARIOS DE AMERICANOS-- INSERT INTO FUNC_AMERICANOS VALUES(NULL,'Élton Teves','Masculino','Atendente',1400.00,'Eltont@Americanos.com.br','47859874814'); INSERT INTO FUNC_AMERICANOS VALUES(NULL,'Vânia Chagas','Transgênero','Atendente_Caixa',1600.00,'Vaniac@Americanos.com.br','2478547964'); INSERT INTO FUNC_AMERICANOS VALUES(NULL,'Carlos Pinhal','Outros','Atendente_Caixa',1600.00,'Carlosp@Americanos.com.br','24784147526'); INSERT INTO FUNC_AMERICANOS VALUES(NULL,'Ellie Pimenta','Feminino','Faxineira',1300.00,'Não Possui E-MAIL','574812485'); INSERT INTO ENDERECO VALUES(NULL,'Rua Duque de Caxias','São Cristóvão','São Paulo','SP',3); INSERT INTO ENDERECO VALUES(NULL,'Rua Santa Luzia','Vila Nova','São Paulo','SP',2); INSERT INTO ENDERECO VALUES(NULL,'Rua Primeiro de Maio','Centro','São Paulo','SP',1); INSERT INTO ENDERECO VALUES(NULL,'Rua das Flores','Grajáu','São Paulo','SP',6); INSERT INTO ENDERECO VALUES(NULL,'Rua Quatorze','Industrial','São Paulo','SP',5); INSERT INTO ENDERECO VALUES(NULL,'Rua Santo Antônio','Centro','São Paulo','SP',4); INSERT INTO TELEFONE VALUES(NULL,'CEL','9414575422',3); INSERT INTO TELEFONE VALUES(NULL,'CEL','9742558252',4); INSERT INTO TELEFONE VALUES(NULL,'CEL','9474122336',5); INSERT INTO TELEFONE VALUES(NULL,'RES','59314785',6); INSERT INTO TELEFONE VALUES(NULL,'CEL','9878539636',1); INSERT INTO TELEFONE VALUES(NULL,'CEL','9874785636',2); --PRODUTOS-- CREATE TABLE AMERICANOS.PRODUTOS_AMERICANOS( IDPRODUTO INT PRIMARY KEY AUTO_INCREMENT, NOME VARCHAR(50) NOT NULL, VALOR FLOAT (10,2) NOT NULL ); CREATE TABLE AMERICANOS.BKP_PRODUTOS_AMERICANOS( IDBKP INT PRIMARY KEY AUTO_INCREMENT, IDPRODUTO INT, NOME VARCHAR(50), VALOR FLOAT(10,2) ); -- TRIGGER DE BACKUP DEPOIS DA INSERÇÃO DE DADOS NA TABELA DE PRODUTOS-- DELIMITER . CREATE TRIGGER AMERICANOS.BACKUP_PRODUT_AMERICANOS BEFORE INSERT ON AMERICANOS.PRODUTOS_AMERICANOS FOR EACH ROW BEGIN INSERT INTO AMERICANOS.BKP_PRODUTOS_AMERICANOS VALUES(NULL,NEW.IDPRODUTO, NEW.NOME,NEW.VALOR); END . DELIMITER ; --DADOS-- INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'CELULAR SANSUNG A47',1400.67); INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'AIER FYER BRASTEMB',890.99); INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'GELADEIRA ELETRALUZ MAX',1952.25); INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'CAPINHAS DE CELULAR PERSONALIZADAS',40.00); INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'SOFA-CAMA',2600.85); INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'BANHEIRA AMERICANA',2655.00); INSERT INTO AMERICANOS.PRODUTOS_AMERICANOS(NULL,'CADERNO UNIVERSITÁRIO 160FOLHAS',9.99); OBS: AH É O "NEW." TAMBÉM DÁ ERRO, EU NÃO SEI SE ESTOU ERRANDO ALGUMA SINTAXE, ESSA PARTE DE TRIGGERS PARECE FÁCIL, MAS EU NÃO SEI NO QUE ESTOU ERRANDO PARA DAR ERRO, SE ALGUÉM PUDER CHECAR POR SI PROPRÍO NO MYSQL 8.0 ESSE CODIGO VAI DAR ERRO NAS TRIGGERS.
×
×
  • Criar Novo...