Em 18 de março de 2010 21:31, Nilson Chagas
<nilson.chagas.si...@gmail.com> escreveu:
> Pessoal como eu montaria uma trigger/constraint para criar a seguinte regra.
>
> Tabela A
> Codigo
> Nome
>
> Tabela B
> Codigo
> Data
>
> Somente inseri registros na tabela A se existir o Codigo na Tabela B.
>
> Não pode ser através de FK, pq a Tabela B é zerada a cada 2 horas.
>
> Pensei em montar um trigger mas não sei como pegar o retorno do select e o
> que informar no return.
>
> Se alguém puder me cantar a pedra. rsrsrsrs

Não entendi muito bem o que você quer, mas para não passar em branco o
"cantar da pedra" vai aqui um exemplo do que eu pude entender.

---
postgres=# CREATE TEMP TABLE a (codigo int, nome varchar);
CREATE TABLE
postgres=# CREATE TEMP TABLE b (codigo int, data date);
CREATE TABLE
postgres=# INSERT INTO b VALUES (1,'2001/10/09');
INSERT 0 1
postgres=# INSERT INTO b VALUES (2,'2002/10/09');
INSERT 0 1
postgres=# INSERT INTO b VALUES (3,'2002/11/09');
INSERT 0 1
postgres=# INSERT INTO b VALUES (4,'2010/01/09');
INSERT 0 1
postgres=# INSERT INTO a SELECT 1, 'JOAO' FROM B WHERE 1=b.codigo;
INSERT 0 1
postgres=# INSERT INTO a SELECT 5, 'PEDRO' FROM B WHERE 5=b.codigo;
INSERT 0 0
postgres=# INSERT INTO a SELECT 4, 'MARIA' FROM B WHERE 4=b.codigo;
INSERT 0 1
postgres=# SELECT * from b;
 codigo |    data
--------+------------
      1 | 2001-10-09
      2 | 2002-10-09
      3 | 2002-11-09
      4 | 2010-01-09
(4 linhas)

postgres=# SELECT * from a;
 codigo | nome
--------+-------
      1 | JOAO
      4 | MARIA
(2 linhas)
---

[]s
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://guedesoft.net - http://www.postgresql.org.br
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a