Bonjour,

Je n'arrive pas a placer une contrainte étrangère sur une table.

Voici le schéma des tables

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;
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.