salut tou le monde!
voilà, chuis en train de créer une BDR, mais j'ai une erreur lors de la création des tables, et je vois pas pourquoi!! le message d'erreur n'étant pas très explicite, je demande votre aide (siouplait )!
voilà mon script :
my $fill2 = $conn->exec("CREATE TABLE species (id_spec integer PRIMARY KEY, name text NOT NULL)" );
die $conn->errorMessage unless PGRES_COMMAND_OK eq $fill2->resultStatus;
my $fill4 = $conn->exec("CREATE TABLE protein (crc text, id_spec integer REFERENCES species MATCH FULL ON UPDATE cascade, gi_ref integer NOT NULL, source_ref text NOT NULL, def text NOT NULL, length integer NOT NULL, seq text NOT NULL, CONSTRAINT prot_pk PRIMARY KEY (crc, id_spec))" );
my $fill5 = $conn->exec("CREATE TABLE alias_prot (gi integer, source text, crc text NOT NULL REFERENCES protein MATCH FULL ON UPDATE cascade, id_spec integer NOT NULL REFERENCES species MATCH FULL ON UPDATE cascade, CONSTRAINT alias_prot_pk PRIMARY KEY (gi, source))" );
die $conn->errorMessage unless PGRES_COMMAND_OK eq $fill5->resultStatus;
le message d'erreur est :
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index 'alias_prot_pk' for table 'alias_prot'
NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
NOTICE: Illegal FOREIGN KEY definition REFERENCES "protein"
ERROR: number of key attributes in referenced table must be equal to foreign key
si vous avez une idée, chuis preneur!!
merci!