Created
March 29, 2017 18:00
-
-
Save hevertonfreitas/d9fec406246a3911eb7bf30f09016d4a to your computer and use it in GitHub Desktop.
constraint para checar o tipo de uma pessoa
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create temp table pessoa (tipo char(1), cpf int, cnpj int); | |
alter table pessoa add constraint pessoa_check check ( (tipo = 'f' and cpf is not null) <> (tipo = 'j' and cnpj is not null) and cpf is null <> cnpj is null); | |
insert into pessoa values ('f', 1, null); -- true | |
insert into pessoa values ('f', null, null); -- false | |
insert into pessoa values ('f', null, 1); -- false | |
insert into pessoa values ('j', null, 1); -- true | |
insert into pessoa values ('j', null, null); -- false | |
insert into pessoa values ('j', 1, null); -- false | |
insert into pessoa values ('f', 1, 1); -- false | |
insert into pessoa values ('j', 1, 1); -- false | |
create temp table pessoa (tipo char(1), cpf int, cnpj int); | |
alter table pessoa add constraint pessoa_check check ( (tipo = 'f' and cpf is not null) <> (tipo = 'j' and cnpj is not null) and cpf is null <> cnpj is null); | |
insert into pessoa values ('f', 1, null); -- true | |
insert into pessoa values ('f', null, null); -- false | |
insert into pessoa values ('f', null, 1); -- false | |
insert into pessoa values ('j', null, 1); -- true | |
insert into pessoa values ('j', null, null); -- false | |
insert into pessoa values ('j', 1, null); -- false | |
insert into pessoa values ('f', 1, 1); -- false | |
insert into pessoa values ('j', 1, 1); -- false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment