DO INSTEAD NOTHING
Em 26/10/2012 18:17, "Fabrízio de Royes Mello" <[email protected]>
escreveu:

>
> 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
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a