hippy 0 Denunciar post Postado Setembro 30, 2008 Bom dia a todos! Preciso de ajuda em definições! Tenho um banco com várias tabelas, entre elas: "venda", "compra", "mercado". Bem, sempre que alguem efetuar uma venda ou compra eu tenho de atualizar o saldo na tabela mercado. - Utilizo trigger ou SP? - se trigger, como pego os dados que foram incluídos em venda ou compra, tipo ID_USUARIO! - SP transação é aconselhavel? obrigado por qualquer ajuda! Sou meio novo por aqui, mas precisando de mais detalhes é só falar. Compartilhar este post Link para o post Compartilhar em outros sites
Junior_Cassapava 0 Denunciar post Postado Outubro 1, 2008 Ola hippy! Pelo que entendi eu acharia mais interessante usar um trigger para esta operação. O trigger é uma função sql que fica "escutando" os eventos que ocorrem nas tabelas, você pode criar um gatilho (trigger) para disparar quando tu fizer um insert em uma tabela, ou um update, um delete.. Vamos supor que você tem a tabela prvendas.. com os campos: cd_venda cd_produto ds_produto nr_qnt Nela você insere o codigo da venda, o codigo do produto, a descrição do produto e a quantidade (apenas um exemplo). Vamos criar um trigger que selecione o cd_venda e o ds_produto e insira esses valores em uma outra tabela.. uma tabela chamada prteste.. que tem os campos: cd_teste cd_venda ds_produto Essa trigger irá executar sempre que você inserir dados em prvendas, ela ficará assim: DELIMITER $$ CREATE TRIGGER trg_nome_trigger AFTER INSERT ON prvendas FOR EACH ROW BEGIN INSERT INTO prteste SET cd_venda = NEW.cd_venda, ds_produto = NEW.ds_produto; END $$ Com o operador NEW você captura os valores novos que foram inseridos na tabela prvendas... Agora vamos supor que você queira fazer a auditoria desses dados.. Toda vez q você executar um UPDATE dos dados nessa tabela você quer q esses dados ou parte desses dados sejam enviados para uma outra tabela.. com o objetivo de saber o valor antigo e o valor atual modificado.. Para capturar o valor antigo use o operador OLD.. os valores novos sempre com o NEW. Espero ter ajudado http://forum.imasters.com.br/public/style_emoticons/default/grin.gif abraço! Compartilhar este post Link para o post Compartilhar em outros sites
hippy 0 Denunciar post Postado Outubro 1, 2008 Bom, bem legal! Muito obrigado. Agora estou com mais uma dúvida. vamos supor que tenho uma tabela tb_valores com os seguintes campos: id_user (PK) nome valor id_prod (FK) Bem, lá vai: - preciso atualizar o campo valor todos os dias de vários id_user, existe algum script para rodar uma stored procedure diariamente? - como atualizar valor para cada os id_user? - como verificar se realmente os calculos foram feitos? mais uma vez obrigado. Compartilhar este post Link para o post Compartilhar em outros sites