Обсуждение: Foreign key to base table with rows in inherited tables

Поиск
Список
Период
Сортировка

Foreign key to base table with rows in inherited tables

От
mikael.kjellstrom@_no_spam_flygtaxi.se (Mikael Kjellström)
Дата:
I've declared a foreign key in table FileId referencing the primary key in 
Datafile. Datafile in itself does'nt have any rows, but Reservationfile, 
inheriting from Datafile has.

I can't insert a row in FileId because no row is found in Datafile: this is 
not what I expected.

I've tried suffixing Datafile with an asterisk (even though that shouldn't 
be necessary in 7.1), but that's not valid syntax.

I'm running 7.1.release4 on Debian Woody.

Table definitions for clarity:

-- Has no rows of its own
declare Datafile ( datafileNr        not null        primary key
);
-- This one has rows
declare Reservationfile (
) 
inherits(Datafile)
;
declare FileId ( datafileNr                not null   references Datafile
);


Re: Foreign key to base table with rows in inherited tables

От
Stephan Szabo
Дата:
Yes, you cannot currently do this.  Check past discussions on mailing
lists for more details.  Inheritance and constraints is pretty dodgy
right now (for instance, Reservationfile.datafileNr is not unique).

On Tue, 5 Jun 2001, Mikael Kjellstr�m wrote:

> I've declared a foreign key in table FileId referencing the primary key in 
> Datafile. Datafile in itself does'nt have any rows, but Reservationfile, 
> inheriting from Datafile has.
> 
> I can't insert a row in FileId because no row is found in Datafile: this is 
> not what I expected.
> 
> I've tried suffixing Datafile with an asterisk (even though that shouldn't 
> be necessary in 7.1), but that's not valid syntax.
> 
> I'm running 7.1.release4 on Debian Woody.
> 
> Table definitions for clarity:
> 
> -- Has no rows of its own
> declare Datafile (
>   datafileNr        not null        primary key
> );
> -- This one has rows
> declare Reservationfile (
> ) 
> inherits(Datafile)
> ;
> declare FileId (
>   datafileNr                not null
>     references Datafile
> );