Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hippy

stored procedure ou trigger

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.