Mrjoni 0 Denunciar post Postado Setembro 12, 2012 Opa a todos, Olha eu tenho um codigo que uso para executar um uma Trigger so que eu queria automatiza-lo pois tenho tabelas que tem muitas colunas. O codigo é o seguinte: begin DECLARE valorNovo TEXT; set @valorNovo=concat('Codigo: ',NEW.codigo,', '); ... set @valorNovo=concat(@valorNovo,'Cod. regiao: ',NEW.cod_regiao,', '); INSERT INTO log_eventos SET Data = NEW.logData, CodUsuario = NEW.logCodUsuario, nomeUsuario = NEW.logUsuario, IP = NEW.logIP, evento='Inclusao', tabela='Imobiliarias', valoresNovos= @valorNovo; end Eu gostaria de saber como eu posso fazer para gerar um loop dentro da tabela listar os campos e automatizar as linhas dos SET.. tipo assim: set colunas = select COLUNAS from minha_tabela for each itens in colunas set @valorNovo=concat(itens.colunas,': ',NEW.itens.colunas,', ') next Isto é so um exemplo, mas é mais ou menos assim q eu queria. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 13, 2012 http://dev.mysql.com/doc/refman/5.0/en/information-schema.html Compartilhar este post Link para o post Compartilhar em outros sites
Mrjoni 0 Denunciar post Postado Setembro 13, 2012 Motta boa tarde, Olha dei uma olhada no link que você me passou mas como sou iniciante não consegui entender muito coisa. Teria como você me ajudar um pouco mais algo como um exemplo. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 13, 2012 Eu gostaria de saber como eu posso fazer para gerar um loop dentro da tabela listar os campos e automatizar as linhas dos SET.. Pelo que entendi você queria saber como obter a lista de campos de uma tabela. A documentação que passei tem a relação das tabelas de metadados do Mysql, entre elas a INFORMATION_SCHEMA.COLUMNS que te informa isto. Qual o problema exatamente ? Compartilhar este post Link para o post Compartilhar em outros sites
Mrjoni 0 Denunciar post Postado Setembro 17, 2012 MOtta boa tarde, OLha eu queria algo assim Hoje eu escrevo assim para pegar o novo cnteudo e passar para uma variavel. DECLARE valorNovo TEXT; set @valorNovo=concat('Codigo: ',NEW.codigo,', '); Eu queria altomatizar isto tipo assim: for each campo in tabela.clientes set @valorNovo=concat(campo.tostring,': ',NEW.campo,', '); next Fazer um loop nas colunas ta tabela Clientes e depois guardar o nome da coluna diga-se "campo.tostring" e o seu conteudo diga-se "NEW.campo" assim eu teria uma mesma rotina para todas as tabelas. Espero ter conseguido me explicar melhor agora. Vlw Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 17, 2012 Creio ter entendido, fiz uma rotina que gera triggers de log mas em Oracle. A ideia básica e ler a tabela de metadados e montar a trigger. Só que a trigger é estática, você parece buscar algo dinâmico. Compartilhar este post Link para o post Compartilhar em outros sites
Mrjoni 0 Denunciar post Postado Setembro 17, 2012 você se importa de postar a sua trigger para eu ver. derrepente da uma luz... obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 17, 2012 Tem o link lá. Compartilhar este post Link para o post Compartilhar em outros sites
Mrjoni 0 Denunciar post Postado Setembro 18, 2012 Motta muito obrigado pela ajuda. Consegui fazer com a ajuda de seu exemplo. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 18, 2012 Publica aí, pode vir a ser útil para alguém. Compartilhar este post Link para o post Compartilhar em outros sites