Probleme mysql

Fermé
darhkan - 29 janv. 2012 à 20:06
 Joe - 30 janv. 2012 à 16:53
Bonjour,
je débute en mysql je dois creer une base de données assez simple malheureusement je n'y arrive pas et je ne sais pas d'ou vient mon erreur.
Dans mon MCD j'ai deux tables avec une relation 1,n j'ai donc créer une 3e table qui fait le lien ca donne ça:

drop database if exists Projet;
create database Projet;
use Projet
create table utilisateurs(
uti_id smallint unsigned not null auto_increment primary key,
uti_nom varchar(2000),
uti_numIBouton varchar(2000),
poste_id smallint unsigned not null,
foreign key(poste_id) references postes(poste_id)
)engine=innodb;

create table postes(
poste_id smallint unsigned not null auto_increment primary key,
poste_addrIp varchar(2000),
uti_id smallint unsigned not null,
foreign key(uti_id) references utilisateurs(uti_id)
)engine=innodb;

create table controler(
uti_id smallint unsigned not null,
poste_id smallint unsigned not null,
primary key(uti_id, poste_id)
)engine=innodb;

insert into postes
(poste_addrIp)
values
("192.168.10.131");

insert into utilisateurs
(uti_nom, uti_numIBouton)
values
("thomas", "A0006460F4A40F");

Le probleme se présente lorsque j'ajoute les clé etrangère dans les tables j'ai ce message d'erreur :
ERROR 1146 (42S02): Table 'projet.utilisateurs' doesn't exist
ERROR 1146 (42S02): Table 'projet.postes' doesn't exist

6 réponses

up
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
30 janv. 2012 à 00:20
Tu veux dire c'est quand tu fais les insert que ça ne passe pas c'est ça?
0
Tes tables utilisateurs et postes se référencent mutuellement. Tu as une grosse erreur de conception !
0
En gros j'ai une table utilisateurs et une table postes, dans le MCD elles ont toutes les deux une relation 1,n je dois donc creer une troisieme table qui correspond au verbe utiliser qui est dans ce cas : controler.
L'id de l'utilisateur et l'id du poste doivent etre referencés dans la table controler.
Mais je ne m'en sort pas avec les clé etrangere...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est donc normal que mes se referencent mutuellement car une troisieme table est créée
0
Non ce n'est pas normal :)

Voilà la correction:

create table utilisateurs(
uti_id smallint unsigned not null auto_increment primary key,
uti_nom varchar(2000),
uti_numIBouton varchar(2000)
)engine=innodb;

create table postes(
poste_id smallint unsigned not null auto_increment primary key,
poste_addrIp varchar(2000)
)engine=innodb;

create table controler(
uti_id smallint unsigned not null,
poste_id smallint unsigned not null,
primary key(uti_id, poste_id)
)engine=innodb;
0