Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 560281
            [titulo] => Trigger em MySQL - Gravar nome do usuário da aplicação
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-08-15 08:59:06
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 430352
            [status] => A
            [isExample] => 
            [NomeUsuario] => Douglas Noronha
            [Apelido] => 
            [Foto] => 
            [Conteudo] => Crie uma procedure passandos os parâmetros para fazer o insert e tbm o id do usuários para gravar o log.
        )

)

Trigger em MySQL - Gravar nome do usuário da aplicação

Fernando Alves
   - 12 ago 2016

Oi Galera,
Encontrei alguns métodos aqui no forum sobre trigger, mas nenhum me atendeu como eu preciso. Pois na verdade, preciso que o Trigger armazena na minha tabela de LOG os dados de modificação de todas as tabelas que o usuario da minha aplicação efetuou.
Eu tenho na tbLog:
id, id_usuario, Acao, DataHora, IP
Eu consigo armazenar todas as informações, menos o ID do usuário, (tem que ser o ID do usuário da minha aplicação, e não o usuário root do BD)
eu tenho uma variavel de sessão do usuário logado na aplicação, na hora de executar o comando EML eu consigo enviar essa variavel para pegar la no Trigger ?
Aguardo.

Post mais votado

Douglas Noronha
   - 15 ago 2016

Crie uma procedure passandos os parâmetros para fazer o insert e tbm o id do usuários para gravar o log.

Douglas Noronha
   - 12 ago 2016

Trigger não aceita parâmetros.
Como você precisa do id do usuário logado no sistema, você pode criar uma classe para cuidar da gravação dos logs dos usuários.

Fernando Alves
   - 14 ago 2016

Como faço para criar esta classe?

Lembrando que desejo fazer tudo via BD, pois tenho milhares de consultas sendo realizadas.

Obrigado.

William (devwilliam)
   - 14 ago 2016

Fernando sinto em informar, mas até hoje não conheço uma maneira de gravar logs via trigger com id do usuário logado na aplicação!

Por isso tenho essa funcionalidade na aplicação, pois na trigger como já foi citado não tem como pegar que está logado.

Fernando Alves
   - 15 ago 2016

Poxa obrigado pela informação, mas confesso que fiquei surpreso com isso, pois achei o trigger a solução para gravar os logs de atividades sem perder tempo em linhas de programação e principalmente no desempenho do banco de dados.

Então neste meu caso pensei em criar uma procedure para ser chamada logo após um INSERT, UPDATE e DELETE, simulando o código EML na invocação do trigger.

Se alguém tiver alguma outra ideia mais funcional podem postar.

Obrigado!