Bonjour,
Je n'arrive pas a placer une contrainte étrangère sur une table.
Voici le schéma des tables
C'est un schéma simplifié, j'ai tenu a garder un exemple simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 CREATE TABLE `characters` ( `account_name` varchar(45) default NULL, `obj_Id` decimal(11,0) NOT NULL default '0', `char_name` varchar(35) NOT NULL, PRIMARY KEY (`obj_Id`), KEY `account_name` (`account_name`), KEY `char_name` (`char_name`), CONSTRAINT `FK_characters_1` FOREIGN KEY (`account_name`) REFERENCES `accounts` (`login`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; CREATE TABLE `items` ( `owner_id` int(11) default NULL, `object_id` int(11) NOT NULL default '0', `item_id` int(11) default NULL, PRIMARY KEY (`object_id`), KEY `key_owner_id` (`owner_id`), KEY `key_item_id` (`item_id`), ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Lorsque je fais le alter table, j'ai sans arrêt l'erreur suivante :
Mysql error number 1005
Cant' create table '.\l2jdb#sql-47c_em.frm '(errno 150)
J'ai déjà réussi a positionner une clé étrangère sur une autre table. Quelqu'un a une idée ? C'est ma base qui a un souci ou c'est moi qui m'y prends mal ?
Je tente de créer une clé étrangère sur la table items, de owner_id vers object_id de characters.
Partager