Задавайте вопросы, мы ответим
Вы не зашли.
Есть sql файл с INSERT-ами в кодировке cp1251.
Как загрузить эти данные в базу?
Пробовал: (1) mysql -u user -p --default-character-set=cp-1251 dbname <file.sql
и
(2) вставить: set character_set_client='cp1251';SET NAMES cp1251; в начале файла.
Не помогло.
Неактивен
SET NAMES cp1251; в начале файла должно сработать
Нужно есть посмотреть тип таблицы - в ней текстовые поля должны быть не в latin1 (cp1251, utf8, koi8r подойдет)
Неактивен
Не помогает. Вот этот запрос вылетает с ошибкой:
Отредактированно ady (25.07.2011 18:57:05)
Неактивен
Запрос работающий, а возникает синтаксическая ошибка, это странно. Выложи файл на форум (и SHOW CREATE TABLE для таблицы)
Неактивен
Запрос я выше уже написал. А SHOW CREATE TABLE следующий:
Неактивен
Записал запрос в файл, все вставилось без ошибки:
mysql test < 1251.txt
$ mysql test -Nbe "SET NAMES utf8;SELECT * from DataField"
+------+----+------+---+------+------------------------+------+------+------+-------+------+------+
| 4101 | 40 | 1 | 1 | FT1 | коэффициент | NULL | 0 | 0 | 1.001 | 100 | NULL |
+------+----+------+---+------+------------------------+------+------+------+-------+------+------+
Давай файл все-таки, с ним что-то не так.
Неактивен
Хм. Странная фигня. Создал новую базу с этой таблицей. На вставление вылетает та же ошибка.
Неактивен
Победил загрузкой через CSV. Там тоже mysql сначала ругался на maxValue, но после его откидывания, удаления пары FK и использования магии высокого уровня REPLACE все прошло.
Неактивен
В файле могут быть невидимые символы и еще обрати внимание на перенос строки - как он выполнен?
Неактивен