Obrigado Tiago, funcionou perfeitamente !
Em 19 de janeiro de 2017 12:58, Tiago José Adami <[email protected]> escreveu: > Em 19 de janeiro de 2017 10:55, Rafael Sousa <[email protected]> > escreveu: > > > > é possivel colocar um not null apenas se outro campo for por exemplo > true ? > > É possível criando um check constraint: > > postgres=# create database checks; > CREATE DATABASE > > postgres=# \c checks; > Você está conectado agora ao banco de dados "checks" como usuário > "postgres". > > checks=# create table public.teste_check(att1a boolean not null > default false, att2b integer); > CREATE TABLE > > ## Criação da Check Constraint > checks=# alter table public.teste_check add constraint ck_teste_2b > check ( case when att1a is true then att2b is not null end ); > ALTER TABLE > > ## Registro válido > checks=# insert into public.teste_check(att1a, att2b) values(false,null); > INSERT 0 1 > > ## Registro inválido, já que attr1a é TRUE, attr2b não pode ser null > checks=# insert into public.teste_check(att1a, att2b) values(true,null); > ERROR: new row for relation "teste_check" violates check constraint > "ck_teste_2b" > DETALHE: Failing row contains (t, null). > > > > Adami > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
