Bom, pelo que entendi a sua questão é ter uma 'constraint', um check de 
unicidade apenas para o valor de STATUS=PENDENTE, permitindo que o mesmo ID 
tenha vários registros com STATUS='CONCLUÍDO', certo ? Se sim, imagino que 
seria usar um índice de função unique , cfrme 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:21389386132607
 ...
 Mas isso é BEM unusual - se o ID é uma parte de chave e representa um elemento 
único , ID + STATUS deveria ser único , indicando que em algum momento o ID=1 
ficou PENDENTE, até que em algum momento esse ID=1 se tornou CONCLUIDO, e uma 
vez atingido status CONCLUIDO esse ID = 1 ** não ** deveria aceitar mais 
entradas de COMCLUIDO ... Neste caso a idéia seria simplesmente se ter uma 
constraint CHECK STATUS IN ('PENDENTE', 'CONCLUIDO', E um índice unique on (ID, 
STATUS) : aí sim, o mesmo ID não poderia ter mais de um registro PENDENTE ou 
mais de um registro CONCLUIDO , o que me parece ser o "normal" ....

 []s

  Chiappa
--- Em [email protected], Emerson Sanches <emerson.sanches@...> 
escreveu
>
> Bom dia pessoal da lista. Tenho uma tabela que tem a seguinte estrutura:
> 
> ID,
> DESCRICAO,
> STATUS
> 
> No campo status posso ter o valor Pendente ou Concluido. O meu problema é o
> seguinte, eu queria bloquear a inserção de 2 registros com o campo STATUS =
> Pendente. Hoje pra restringir isso eu faço um cursor na SP  e antes da
> inclusão/alteração do registro eu verifico se ja nao existe outro registro
> com o valor "Pendente" se existir eu gero um exceção e bloqueio a
> inserção/alteração.
> Gostaria de saber se existe outra forma de fazer isso, algo como um
> constraint nativa do Oracle.
> 
> PS: No campo STATUS poderão ocorrer varios registros com o valor igual a
> "Concluido".
> 
> Obrigado pela atenção.
> 
> Emerson Sanches
> Analista de Sistemas
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a