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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...

×
×
  • Criar Novo...