Table com Check

PostgreSQL

03/11/2008

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

Curtidas 0

Respostas

Danilo Passos

Danilo Passos

03/11/2008

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.


GOSTEI 0
Bmrt82

Bmrt82

03/11/2008

[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


GOSTEI 0
Bmrt82

Bmrt82

03/11/2008

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?


GOSTEI 0
POSTAR