Ir para conteúdo
Fórum CódigoFonte.net
caloro

TRIGGER

Recommended Posts

Estou fazendo um projeto e inicialmente usaria o banco mysql, mas por algumas funcoes q o mysql nao tem e o postgresql tem, vou mudar, ai vai minha duvida:

Dei uma lida sobre trigger no postgres e pelo q eu intendi, eu preciso criar uma function pra fazer o q a trigger faria, depois criar uma triguer q executa essa procedure, eu tenho mesmo q fazer isso, nao posso simplismente escrever o código da procedure dentro da trigger.

Se eu preciso mesmo fazer isso, qual seria o retorno da function, eu vi uns retornarem NULL, outro NEW ou OLD, estou meio confuso, se alguem puder me ajudar eu agradeço.

Peco desculpas casa tenha feito um tópico duplicado, mais nao encontrei nenhum q explicasse isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Estou fazendo um projeto e inicialmente usaria o banco mysql, mas por algumas funcoes q o mysql nao tem e o postgresql tem, vou mudar, ai vai minha duvida:

Dei uma lida sobre trigger no postgres e pelo q eu intendi, eu preciso criar uma function pra fazer o q a trigger faria, depois criar uma triguer q executa essa procedure, eu tenho mesmo q fazer isso, nao posso simplismente escrever o código da procedure dentro da trigger.

Se eu preciso mesmo fazer isso, qual seria o retorno da function, eu vi uns retornarem NULL, outro NEW ou OLD, estou meio confuso, se alguem puder me ajudar eu agradeço.

Peco desculpas casa tenha feito um tópico duplicado, mais nao encontrei nenhum q explicasse isso.

O tipo de retorno é "trigger".

Segue um exemplo:

-- Exemplo de FUNÇÃO DE TRIGGER.
CREATE OR REPLACE FUNCTION ftri_orcamentoanual() RETURNS "trigger" AS
$$
BEGIN
    IF NEW.id IS NULL THEN
        NEW.id := nextval('seq_orcamentoAnual');
    END IF;

    RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';

-- Exemplo de TRIGGER.
CREATE TRIGGER tri_orcamentoanual
  BEFORE INSERT
  ON tab_orcamentoanual
  FOR EACH ROW
  EXECUTE PROCEDURE ftri_orcamentoanual();

- Tiago Maia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×
×
  • Criar Novo...