Fórum Table com Check #26972

03/11/2008

0

Viva,

Preciso de criar uma tabela onde só se pode inserir uma entrada caso um atributo de uma coluna de uma outra tabela seja TRUE.
Eu tenho o seguinte:

create table socio(
nsocio integer,
nome char(1024),
bi char(256) not null unique,
email char(256),
nif char(256) not null unique,
telefone char(256),
honorario boolean,
primary key(nsocio));

e

create table ano_mandato(
nsocio integer CHECK(nsocio IN (SELECT nsocio FROM socio where honorario IS TRUE)),
ano smallint not null,primary key(nsocio, ano),
foreign key(nsocio) references socio(nsocio));

Mas obtenho o seguinte erro:
ERROR: cannot use subquery in check constraint

O que tou a fazer mal?


Bmrt82

Bmrt82

Responder

Posts

04/11/2008

Danilo Passos

Ao que parece, o postgres não permite que o check use um select. Eu recomendaria usar triggers para fazer a verificação que você deseja.


Responder

Gostei + 0

04/11/2008

Bmrt82

[quote:ff139e82db=´Danilo Passos´]Ao que parece, o postgres não permite que o check use um select. Eu recomendaria usar triggers para fazer a verificação que você deseja.[/quote:ff139e82db]

Obrigado


Responder

Gostei + 0

04/11/2008

Bmrt82

quote=´Danilo Passos´]Ao que parece, o postgres não permite que o check use um select. Eu recomendaria usar triggers para fazer a verificação que você deseja.


Alguém me pode ajudar na criação dessa trigger?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar