Syntaxe de FOREIGN KEY... REFERENCES
[Suite à la discussion http://www.developpez.net/forums/sho....php?t=481941]
L'intégrité des relations entre les tables n'est pas forcément géré par MySql, on peux ne pas préciser d'intégrité et le gérer soit même.
En consultant la documentation, je n'ai pas réussi à trouver à quoi servait vraiment
Code:
REFERENCES client(numero)
, dans la définition de la colonne, mais ca suffit pas pour que MySql gère l'intégrité.
Pour que MySql gère l'intégrité, et donc empèche d'inserer une commande si le client n'existe pas il faut définit une FOREIGN KEY (clé étrangère) sur la table commande.
Bizzare la syntaxe de tes CREATE, tu es sur qu'il les accepte comme ca ?
Tu défini le format de la clé primaire dans PRIMARY KEY ? m'etonne que ca marche, de plus tu devrais plutôt mettre le numéro de client en clé primaire.
Essaye plutot ca un truc du genre :
:tagcode:
Code:
1 2
| CREATE TABLE client(num_client varchar(10),nom varchar(50)) PRIMARY KEY (num_client)
CREATE TABLE commande(num_commande varchar(15),num_client varchar(10)) PRIMARY KEY (num_commande) FOREIGN KEY (num_client) REFERENCE client |