NOT NULL flexível

Oracle

06/06/2006

Bom dia Pessoal!
Seguinte, Tenho uma tabela(Fornecedor e cliente etc...) que possui
varios dados e dependendo de um campo TIPO(Fornecedor e cliente
etc...) alguns campos serão NOT NULL ou não. isso é possivel a nivel
de banco? Uma Check Constraints será? e como seria o codigo?
alguma outra sugestão?


Gabrielherdt

Gabrielherdt

Curtidas 0

Respostas

Motta

Motta

06/06/2006

algo assim :

imagine uma tabela fornecedor

fornecedor
------------
codigo

tipo char(1) NOT NULL,
cpf n(11) NULL,
cgc n(11) NULL ....


cria contraints assim

ALTER TABLE FORNECEDOR
ADD CONSTRAINT CHK_TIPO (
TIPO_VINCULO IN (´J´,´F´) )
/

ALTER TABLE FORNECEDOR
ADD CONSTRAINT CHK_CGFCPF CHECK (
(TIPO=´J´ AND CGC IS NOT NULL AND CPF IS NULL) OR
(TIPO=´F´ AND CGC IS NULL AND CPF IS NOT NULL)
)
)
/


GOSTEI 0
POSTAR