Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

erison

[Resolvido] Check Postgre

Recommended Posts

pessoal assim.

estou tentando usar a constrant check para fazer a seguinte verificação

 

o mesmo id não pode ter 2 flag A ex:

 

 

assim pode

id-----flag

1------F

1------F

1------A

2------F

2------F

2------A

 

assim não pode

id-----flag

1------F

1------F

1------A

2------F

2------A

2------A

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria uma trigger de AFTER / STATEMENT

 

bastaria contar se existem estes cassos duplicados

 

select id,flag
from tabela
where flag = 'A'
group by id,flag
having count(*) > 1

 

Se esta query retornar valores bastar dar um raisse_error na Trigger.

 

A síntaxe exata em "putzgrila" eu não sei, mas a ideia básica é esta.

 

STATEMENT , pois para FOR EACH ROW pode dar MUTANT TABLE

 

http://www.postgresql.org/docs/8.1/static/triggers.html

http://www.postgresql.org/docs/9.1/static/sql-createtrigger.html

http://osdir.com/ml/db.postgresql.brasil/2003-02/msg00675.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publica aí.

 

1) Fiquei curioso

2) Pode ser útil a outra pessoa.

Compartilhar este post


Link para o post
Compartilhar em outros sites
CREATE OR REPLACE RULE "Teste" AS
ON INSERT TO "joab"
WHERE (select count(*) From "joab" Where "ID1" = New."ID1" and "FL" = 'A') > 0
DO INSTEAD
	();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deveria ser

 

= 0

 

?

 

_____________________________________

Mas se funcionou deixa queito.

Eu achei que RULE era algo como a CONSTRAINT, mas depois vi que é

extensão do Postgre.

[]´s

____________________________________

Compartilhar este post


Link para o post
Compartilhar em outros sites

não

poderia ser ou >0 ou == 1

 

pq se for igual a 0

não vai deixar da o insert com a flag A

 

pq cada id so pode ter uma flag A

entente

 

rules são regras que colocamos no banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito úteis, em Oracle tem de criar triggers para estas validações.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.