Valew pelas dicas.

Depois de parar e pensar melhor consegui atraves de um consulta no google
uma maneira da forma como eu precisava.

Não consigo achar agora o exemplo que vi, mas funcionaria assim.

- Cria uma trigger
- Declara uma variavel (var_codigo) do mesmo tipo do codigo
- faz um select (select into var_codigo codigo from tabela_b where codigo =
new.codigo)
- e compara if NOT_FOUND.

Mas eu tive que estacionar por enquanto, pq precisava trazer também o
$SESSION do PHP, e este campo não estava sendo gravado.

Então estou pensando se vai valer a pena fazer a comparação dentro do banco
ou via PHP, pq se for fazer via BANCO vou ter que acrescentar o campo
$SESSION as duas tabelas.

Mas muito obrigado, a dica de vocês já me serviram para outros cases.

2010/3/18 JotaComm <jota.c...@gmail.com>

> Olá,
>
> 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
>>
>
> Também não entendi muito bem o que vocẽ deseja. Veja se é mais ou menos
> isso que vocẽ quer:
>
> CREATE TABLE tab1(codigo INTEGER PRIMARY KEY,nome VARCHAR(30));
>
> CREATE TABLE tab2(codigo INTEGER PRIMARY KEY,nome VARCHAR(20),data
> TIMESTAMP WITHOUT TIME ZONE);
>
> CREATE OR REPLACE RULE exemplo_regra AS ON INSERT TO tab2 DO INSERT INTO
> tab1 VALUES (NEW.codigo,NEW.nome);
>
> postgres=# INSERT INTO tab2 VALUES (1,'JP',current_timestamp);
> INSERT 0 1
> postgres=# SELECT * FROM tab2;
>  codigo | nome |            data
> --------+------+----------------------------
>       1 | JP   | 2010-03-18 23:37:08.132421
> (1 row)
>
> postgres=# SELECT * FROM tab1;
>  codigo | nome
> --------+------
>       1 | JP
> (1 row)
>
>
>
>>
>> --
>> []s
>> Nilson Chagas - Ubuntu User 25794
>> ---
>> Visite:
>> http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso Bíblico
>>
>> Twitter: avozdoevangelho
>> Twitter: matrixspnet
>>
>> http://www.amados.com.br
>> http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso Biblico
>> On-Line
>>
>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> []s
> --
> JotaComm
> http://jotacomm.wordpress.com
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso Bíblico

Twitter: avozdoevangelho
Twitter: matrixspnet

http://www.amados.com.br
http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso Biblico
On-Line
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a