junaooaks 3 Denunciar post Postado Março 28, 2012 ola pessoal... ESTOU querendo fazer um procedimento que nao tenho certeza se tem como fazer bom vamos la. tenho uma tabela de log que vai registrar as alterações campos da tabela log -idLog -tabelaReferente -campoReferente -antigo -novo camporReferente é o campo que esta sofrendo alteração na tabela ex: tabela cliente campo nome como posso fazer esta procedure DELIMITER $$ CREATE PROCEDURE logDB() DECLARE idLog int NOT NULL AUTO_INCREMENT; DECLARE tabelaReferente CHAR(100) NOT NULL; DECLARE campoReferente CHAR (100) NOT NULL; DECLARE antigo VARCHAR(200) NOT NULL; DECLARE novo VARCHAR (200) NOT NULL; DECLARE data DATE NOT NULL; DECLARE idUsuario INT NOT NULL; BEGIN END DELIMITER; o que eu quero e toda alteração que for realizado no banco de dados tipo update e delete seja registrado na tabela e so um help um exemplo nao quero que faz pra mim e so que estou perdido no meu próprio raciocínio Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 28, 2012 ... o que eu quero e toda alteração que for realizado no banco de dados tipo update e delete seja registrado na tabela e so um help um exemplo nao quero que faz pra mim ... Tente usar uma trigger. Compartilhar este post Link para o post Compartilhar em outros sites
junaooaks 3 Denunciar post Postado Março 28, 2012 motta eu ja tinha visto este post e que meu ingles e fraco outra coisa qual a diferenca entre procedure e trigger(gatilho)? motta vi um artigo seu Clique aqui e o que quero fazer e algo parecido so que nao sei como pegar a tabela dinamica tipo o sistema dispara uma update na tabela cliente eu quero pegar o nome desta tabela referenciada na consulta e colocar na triggers -- Trigger DDL Statements DELIMITER -- colocar tabela dinamica tipo dependendo da alteracao que esta acontedendo no banco de dados -- se tiver altrando a tabela cliente entao variavel tabela vai receber nome cliente DECLARE tabela char(100); tabela:= new.tabela CREATE trigger log AFTER INSERT ON tabela FOR EACH ROW BEGIN DECLARE id int; DECLARE campo CHAR (100); DECLARE antigo VARCHAR(200); DECLARE novo VARCHAR (200); campo := new.campo antigo:= new.antigo novo := new.novo INSERT INTO logDB VALUES (tabelaReferente = tabela, campoReferente= campo, antigo = antigo, novo= novo, data= CURRENT_DATE, idUsuario = usuario); END DELIMITER |; como posso pegar a tabela dinanmica ? e os campos desta tabela Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 28, 2012 Aquilo só funciona em Oracle, teria de ser adaptado para outros BD´s. Conheço quase nada da programação em MySql para fazer isto. Compartilhar este post Link para o post Compartilhar em outros sites