Seu código e esquema estão OK. Você provavelmente está tentando na versão anterior da tabela.
http://sqlfiddle.com/#!2/9dc64/1/0
Sua tabela ainda não tem UNIQUE, então esse erro é impossível nessa tabela.
Faça backup dos dados dessa tabela, descarte-os e recrie-os.
Talvez você tenha tentado executar esse
CREATE TABLE IF NOT EXIST
. Não foi criado, você tem a versão antiga, mas não houve erro por causa de IF NOT EXIST
. Você pode executar o SQL assim para ver a estrutura da tabela atual:
DESCRIBE my_table;
Editar - adicionado mais tarde:
Tente executar isso:
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;