Votre code et votre schéma sont OK. Vous essayez probablement la version précédente du tableau.
http://sqlfiddle.com/#!2/9dc64/1/0
Votre table n'a même pas UNIQUE, donc cette erreur est impossible sur cette table.
Sauvegardez les données de cette table, supprimez-les et recréez-les.
Peut-être avez-vous essayé d'exécuter ce CREATE TABLE IF NOT EXIST
. Il n'a pas été créé, vous avez une ancienne version, mais il n'y a pas eu d'erreur à cause de IF NOT EXIST
.
Vous pouvez exécuter SQL comme ceci pour voir la structure actuelle de la table :
DESCRIBE my_table;
Modifier - ajouté plus tard :
Essayez d'exécuter ceci :
DROP TABLE `my_table`; --make backup - it deletes table
CREATE TABLE `my_table` (
`number` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`money` int(11) NOT NULL,
PRIMARY KEY (`number`,`name`),
UNIQUE (`number`, `name`) --added unique on 2 rows
) ENGINE=MyISAM;