Triggers ... Porque esta simples trigger não funciona?
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]
[b:463d222d34]E a criação da trigger é essa:[/b:463d222d34]
A reclamação do PostgreSQL é que a função ´desce_rotas_apartir´ não existe como mostrado abaixo:
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 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?
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")
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)