BOUCHPAN-LERUST-JUERY Lionel wrote:
>In SQL I have the following tables
>
>CREATE TABLE film(
>VisaExploitation INTEGER NOT NULL,
>DureeTournage INTEGER NOT NULL,
>Titre VARCHAR( 50 ),
>
>PRIMARY KEY ( VisaExploitation ) );
>CREATE TABLE filmHistorique(
>NbCostume INTEGER
>) INHERITS ( film );
>
>create table filmDocumentaire(
> ) INHERITS ( film );
>
>I have a weak entity:
>
>CREATE TABLE copie(
>NumCopie INTEGER NOT NULL,
>VisaExploitation INTEGER NOT NULL,
>PRIMARY KEY( VisaExploitation, NumCopie ),
>FOREIGN KEY( VisaExploitation ) REFERENCES film ON DELETE CASCADE );
>
>The problem is I have to be able to have the constraint on
>both 2 and 3 and I can't figure how to implement this.
You can't do this at present, because there is no support for a foreign
key constraint on an inheritance hierarchy (it is a major defect with the
current implementation of inheritance).
Although inheritance is conceptually correct, the lack of implementation
suggests an alternative course:
"film" should contain a row for every film and "filmHistorique" and
"filmDocumentaire" should have foreign key constraints on "film". You
could maintain the contents of "film" by triggers on the other two tables.
--
Oliver Elphick [EMAIL PROTECTED]
Isle of Wight http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"Dearly beloved, avenge not yourselves, but rather give
place unto wrath. For it is written, Vengeance is
mine; I will repay, saith the Lord. Therefore if thine
enemy hunger, feed him; if he thirst, give him drink;
for in so doing thou shalt heap coals of fire on his
head. Be not overcome of evil, but overcome evil with
good." Romans 12:19-21
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])