Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur d'entrée en double MySQL même s'il n'y a pas d'entrée en double

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;