GARANTIR DESCONTO

Fórum Triggers ... Porque esta simples trigger não funciona? #26177

25/09/2004

0

Senhores,

Apesar de trabalhar com bancos de dados a um bom tempo, nunca me deparei com a necessidade de usar triggers, mas agora estou precisando usar uma maldita trigger e mesmo já tendo lido a documentação do postgres essa droga não funciona.
Poderiam, por favor me dizer o que está errado e se possível me dar uma luz na criação de triggers!?

[b:463d222d34]
A função é essa:[/b:463d222d34]
CREATE OR REPLACE FUNCTION public.desce_rotas_apartir(int4)
  RETURNS opaque AS
´
UPDATE gtc_rota
SET ordem=ordem+1
WHERE ordem >= $1;

´
  LANGUAGE ´plpgsql´ VOLATILE;


[b:463d222d34]E a criação da trigger é essa:[/b:463d222d34]
CREATE TRIGGER desce_rotas 
BEFORE INSERT ON gtc_rota 
FOR EACH ROW 
EXECUTE PROCEDURE desce_rotas_apartir(ordem);


A reclamação do PostgreSQL é que a função ´desce_rotas_apartir´ não existe como mostrado abaixo:
ERRO:  função desce_rotas_apartir() não existe


Já estou de cabeça quente e não consigo resolver isso. Resumindo o que eu quero:
A minha tabela tem um formato mais ou menos assim:
ordem endereco
    1        rua a
    2        rua b
    3        rua c
e preciso que ao inserir um novo endereco com a ordem ´2´, por exemplo os endereços 2 e 3 sejam deslocados para baixo, ou seja, se der um
INSERT tabela VALUES (2,"rua d")
eu tenha a minha tabela como segue:
ordem endereco
    1        rua a
[b:463d222d34]    2        rua d[/b:463d222d34]
    3        rua b
    4         rua c

Como vêm o problema é simples e a solução certamente que é tamem, mas como eu nunca usei isso estou errando em algum lugar. Mas onde?


Welington Braga

Welington Braga

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar