problème de délégation d'intégrité referentiel

Petit nouveau ! | 1 Messages

26 juil. 2006, 17:46

Bonjour tout le monde,
alors j'ai un petit soucis lorsque je tente de lier quelques unes de mes tables :s Voila le code :

Code : Tout sélectionner

CREATE table `plat` ( `ref_plat` int auto_increment primary key, `nom` varchar(50) NOT NULL, prix_u double) TYPE = innodb; create table serveur ( ref_serveur int auto_increment primary key, nom varchar(15) not null, prenom varchar(15) not null) type = innodb; create table commande ( num_cmd int auto_increment primary key, ref_plat int references plat, numero_tbl varchar(10), quantite int, prix_total double) type = innodb; CREATE table `table` ( id_tbl int auto_increment primary key, numero_tbl varchar(10) references commande, ref_serveur int references serveur, couvert int, `date` timestamp) type = innodb;
le code des crétions de table marche bien... :)

Donc en théorie mes tables devraient être liées, du moins je pense...Mais lorsque j'essaie d'executer la requête suivante ça ne marche pas :

SELECT * FROM `table` where ref_serveur in (SELECT ref_serveur from serveur where prenom = '$serveur');

J'en deduis que mes liaisons entre les tables ne sont pas bonnes, donc si quelqu'un à une explication voir une solution au problème cela m'arrangerai grandement :D

Pour infos j'utilise MySQL avec phpmyadmin

Merci d'avance ;)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2006, 13:38

ça ne marche pas
C'est à dire ? Pas de résultats ? Message d'erreur? Il faut en dire plus...
J'en deduis que mes liaisons entre les tables ne sont pas bonnes, donc si quelqu'un à une explication voir une solution au problème cela m'arrangerai grandement :D
Il n'y a pas de réelle gestion d'intégrité référentielle avec MySQL, sauf avec des tables InnoDB. Donc ton problème ne vient pas de là, si tu as une jointure dans une requête cela devrait fonctionner.
Pour infos j'utilise MySQL avec phpmyadmin
Quelle version de MySQL ?