Em 26 de outubro de 2012 18:09, Diego Rivera Tavares de Araujo <
[email protected]> escreveu:

> Boa tarde Pessoal,
>
> Estou tentando criar uma regra para inserir na tabela usuarios para
> inserir somente quando o registro ainda nao tenha sido inserido mas não
> estou conseguindo, alguém por ai para dar uma luz.
>
>
> CREATE OR REPLACE RULE rule_I_usuarios as on insert TO usuarios
> where (new.matricula not in (select matricula from usuarios))
> DO
> insert into usuarios(matricula,nome,fone,tipo,cargo,lotacao,rua, bairro,
> ncasa,criado, atualizado, mail)
> values (new.matricula,new.nome,new.fone, new.tipo, new.cargo,
> new.lotacao,new.rua,new.bairro, new.ncasa, current_timestamp,NULL,new.mail);
>
> INSERT INTO usuarios(
>             matricula, nome, fone, tipo, cargo, lotacao, rua, bairro,
> ncasa,
>             criado, atualizado, mail)
>     VALUES (123, 'diego', '5', 2, 'ti', 'lotacao', 'rua','bairro',30,
> now(),now(), 'mail');
>
> Erro: ERROR:  infinite recursion detected in rules for relation "usuarios"
>
>
Porque vc não cria um índice UNIQUE para essa sua coluna "matricula", pois
pelo que entendi vc quer inserir somente caso não exista outro usuário com
a matricula que vc está inserindo... correto?

Att,

-- 
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a