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
