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
usa trigger. no after vc pega o valor atual e o novo e chama sua procedure pra grava-los
J
junaooaks
gostei :lol:
tem como da um ex de qual quer coisa so para sintaxe ?
luxu
pode tb colocar dps do comando de gravar um procedimento q disppara a gravacao do log no BD, ou seja, ha N maneiras de fazer…
mauricioadl
ixi cara, sou péssimo de banco de dados, mas eh muito simples encontrar que vc quer. procura no google criar trigger no banco de dados mysql ou oracle ou sei lah qual esta usando.
[]'s
Dakon
O uso de triggers depende se o banco de dados disponibiliza esse recurso.
Por uma questão de maior independência do banco e controle das regras de negócio, sugiro fazer a gravação desse log pela sua própria aplicação. Se você usar DAO, fica até fácil implementar isso.
J
junaooaks
Dakon o banco de dados mysql ate onde eu sei ele suporta.
luxu o que é dps ?
pessoal não estou querendo fazer pela aplicação, quero ver metodo novo desafio
olha se estou no caminho
DELIMITER$$CREATEPROCEDURElogDB()DECLAREidLogintNOTNULLAUTO_INCREMENT;DECLAREtabelaReferenteCHAR(100)NOTNULL;DECLAREcampoReferenteCHAR(100)NOTNULL;DECLAREantigoVARCHAR(200)NOTNULL;DECLAREnovoVARCHAR(200)NOTNULL;DECLAREdataDATENOTNULL;DECLAREidUsuarioINTNOTNULL;BEGIN//pegadadosjaexistentenaminhatabela$tabela="nao sei se tem como pegar o nome da tabela ou ate mesmo declara variavel";$reference='campo referencia';$antigo='nome antigo que esta na tabela';//estescamposvemcomaconsultadaminhaaplicação$novo='recebe alteracao';$usuario='idUsuario';AFTERinsertON$tabelaFOREACHROWBEGININSERTINTOlogDBVALUES(new.tabelaReferente=$tabela,new.campoReferente=$reference,new.antigo=$antigo,new.novo=$novo,new.data=CURRENT_TIMESTAMP,new.idUsuario=$usuario,);ENDDELIMITER;
a questao da tabela e o campo nao faço a menor ideia como pegar o nome, ou sera que consigo pegar o nome da tabela e o campo que esta sofrendo alteração atraves da ALTER TABELA que vai da minha aplicação ?
J
junaooaks
pessoal agora estou precisando de uma ajuda de vocês, como consigo pegar o nome de uma tabela informada pelo consulta do sistema
tipo
SELECT * FROM usuario
de dentro do mysql tem como eu pegar o nome da tabela solicitado pelo select ou update ou delete.
deu pra entender ? :roll:
tipo tabela solicitada foi tabela usuario. nao sei se com show tables tem como me informar algo