SQLite для MySQL странная ошибка # 1064 - PullRequest
1 голос
/ 15 февраля 2012

Я конвертирую базу данных SQLite в MySQL, чтобы импортировать ее в PHPMyAdmin.Это должно быть просто.Я экспортировал его в дамп, изменил автоинкременты и изменил все двойные кавычки на обратные.Вот как выглядит начало полученного файла:

DROP TABLE IF EXISTS `chars`;
CREATE TABLE chars(
                            charid INTEGER PRIMARY KEY AUTO_INCREMENT,
                            character TEXT
                    );
INSERT INTO `chars` VALUES(3,'a');
INSERT INTO `chars` VALUES(4,'b');

... При попытке импорта в PHPMyAdmin выдает эту ошибку.

Error
SQL query:

CREATE TABLE chars(

charid INTEGER PRIMARY KEY AUTO_INCREMENT ,
CHARACTER TEXT
);

MySQL said: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'character TEXT
                    )' at line 3

Слишком много места после строки с отступом?Я оставил опцию «форматировать» как «SQL», оставил режим совместимости с SQL как НЕТ и оставил галочку «Не использовать AUTO_INCREMENT для нулевых значений».Его собираются использовать в веб-приложении Django.

1 Ответ

6 голосов
/ 15 февраля 2012

CHARACTER - это зарезервированное слово в mySQL .Держу пари, что причина в этом.

Используйте другое имя столбца (предпочтительно) или используйте обратные метки:

 `CHARACTER` TEXT
...