J'ai crée 2 tables bidon avec juste un id comme clé primaire. La différence c que ds une table 'B' la clé primaire est a la fois étrangere et donc pointe sur la clé primaire reelle de la table 'A'. Cependant je peux toujours ajouter manuellement une clé inexistante dans la table 'A' dans la table 'B' ce qui viole la contrainte de cle etrangere !
Ma question : quel est le script EXACTE pour que la contrainte soit respectée (j'ai essaié avec le ALTER TABLE add constraint ... mais la contrainte n'est pas pris en compte comme je vous dis)
aidez-moi
Publicité
Posté le 03-02-2006 à 15:16:57
Giz
Posté le 03-02-2006 à 15:21:26
CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE SET NULL
) TYPE=INNODB;
parait que ce code ci-dessus marche. Ca veut dire quoi le TYPE=INNODB ?????
couak
Posté le 03-02-2006 à 19:57:50
sous MySQL tu as deux types de tables : MyISAM et InnoDB
InnoDB te permet d'avoir des contraintes d'intégrité
Giz
Posté le 06-02-2006 à 09:47:52
OK, tu peux m'en dire plus STP.
NB : dois-en conclure qu'hibernate n'est pas a jour avec le code MySQL généré ? (mapping de clé étrangère où il oubli d'ajouter TYPE=Innodb)