Il codice e lo schema sono OK. Probabilmente stai provando una versione precedente di table.
http://sqlfiddle.com/#!2/9dc64/1/0
Il tuo tavolo non ha nemmeno UNIQUE, quindi quell'errore è impossibile su quel tavolo.
Eseguire il backup dei dati da quella tabella, rilasciarla e ricrearla.
Forse hai provato a eseguire quel CREATE TABLE IF NOT EXIST
. Non è stato creato, hai una vecchia versione, ma non si è verificato alcun errore a causa di IF NOT EXIST
.
Puoi eseguire SQL in questo modo per vedere la struttura della tabella corrente:
DESCRIBE my_table;
Modifica - aggiunto in seguito:
Prova a eseguire questo:
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;