[Mysql5] Erreur pour poser une clé étrangère
Bonjour,
Je n'arrive pas a placer une contrainte étrangère sur une table.
Voici le schéma des tables
Code:
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; |
C'est un schéma simplifié, j'ai tenu a garder un exemple simple.
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.