SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.05.2011 00:36:56

vvsh
Завсегдатай
Зарегистрирован: 12.01.2008
Сообщений: 50

дамп таблицы

здравствуйте.
есть команда
SELECT * INTO OUTFILE
как с помощью нее добавить в начало файла названия столбцов?
спасибо

Неактивен

 

#2 05.05.2011 00:58:51

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: дамп таблицы

C помощью этой команды это сделать нельзя никак. Вы можете, например,
воспользоваться mysqldump -T, который сделает данные в табличном формате
и структуру таблицы в разных файликах.

Неактивен

 

#3 05.05.2011 01:02:26

vvsh
Завсегдатай
Зарегистрирован: 12.01.2008
Сообщений: 50

Re: дамп таблицы

а с помощью LOAD DATA INFILE?

Неактивен

 

#4 05.05.2011 01:45:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: дамп таблицы

LOAD DATA INFILE загружает данные в базу из файлика, а не выгружает данные
из базы в файлик. Но он умеет пропускать нужное количество строк, если вдруг
Вы туда допишете заголовки.

Неактивен

 

#5 15.10.2011 02:17:01

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

решил написать сюда...
есть таблица в БД, которую нужно сохранить в csv.
Нашел два решения задачи: с помощью встроенных средств phpMyAdmin и запросом

SELECT * FROM `archive` INTO OUTFILE 'd:/WSH/file.csv' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n'
но есть одно НО - в обоих случаях я получаю файл, открываемый в Экселе крякозябрами. Открыв этот же файл с помощью текстового редактора вижу, что вся таблица нормально сохранилась, НО кодировка файла стоит UTF-8 (Эксель понимает только cp1251). Вопрос: как бы выгрузить табличку именно в cp1251?

Отредактированно ruslan_fi (15.10.2011 02:18:43)

Неактивен

 

#6 15.10.2011 02:29:49

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: дамп таблицы

Нужно попросить MySQL отдать данный в cp1251, запрос

set names cp1251


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 15.10.2011 02:34:22

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

deadka написал:

Нужно попросить MySQL отдать данный в cp1251, запрос

set names cp1251

а куда вписывать то в запросе сие чудо?
написал в самом начале - получил вот что

SET NAMES cp1251;# MySQL вернула пустой результат (т.е. ноль строк).
SELECT....


а файл все равно нечитаем...

Отредактированно ruslan_fi (15.10.2011 02:34:57)

Неактивен

 

#8 15.10.2011 02:37:21

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: дамп таблицы

Да какое там чудо smile... Я не знаю, можно ли в phpmyadmin несколько запросов сразу исполнять, попробуйте через родной клиент.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 15.10.2011 02:44:19

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

deadka написал:

Да какое там чудо smile... Я не знаю, можно ли в phpmyadmin несколько запросов сразу исполнять, попробуйте через родной клиент.

не получилось... такое ощущение, что сначала выполняется первый запрос (set names cp1251), а потом уже вторым потоком - следующий с set names utf-8...

Неактивен

 

#10 15.10.2011 02:45:25

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: дамп таблицы

Ну, я и говорю, что воспользуйтесь тем клиентом, который позволяет сделать несколько запросов в рамках одной сессии. Например родной консольный клиент mysql


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 15.10.2011 02:46:37

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

deadka написал:

Ну, я и говорю, что воспользуйтесь тем клиентом, который позволяет сделать несколько запросов в рамках одной сессии. Например родной консольный клиент mysql

типа командной строки? так им и пользовался neutral

Неактивен

 

#12 15.10.2011 02:48:48

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: дамп таблицы

Нда, странно. Можно посмотреть скрин Ваших действий в консоли mysql? И к слову, если Вам нужно это сделать один раз - то почему бы просто не переконвертировать полученный результат в cp1251 любым конвертером, например iconv?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#13 15.10.2011 02:51:40

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

deadka написал:

Нда, странно. Можно посмотреть скрин Ваших действий в консоли mysql? И к слову, если Вам нужно это сделать один раз - то почему бы просто не переконвертировать полученный результат в cp1251 любым конвертером, например iconv?

Легко, но нужно будет выгружать чуть ли не ежечасно.

Отредактированно ruslan_fi (15.10.2011 02:54:09)


Прикрепленные файлы:
Attachment Icon Снимок.PNG, Размер: 54,775 байт, Скачано: 352

Неактивен

 

#14 15.10.2011 03:31:04

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: дамп таблицы

Начиная с MySQL 5.1 у SELECT ... INTO OUTFILE есть опция CHARACTER SET. Если она не указана, то колонки записываются в бинарном виде в той кодировке, в которой они есть. http://dev.mysql.md/doc/refman/5.1/en/select.html

dev.mysql.com написал:

Column values are written converted to the character set specified in the CHARACTER SET clause, which is available as of MySQL 5.1.38. Prior to 5.1.38 or if no such clause is present, values are dumped using the binary character set. In effect, there is no character set conversion. If a table contains columns in several character sets, the output data file will as well and you may not be able to reload the file correctly.

Неактивен

 

#15 17.10.2011 11:13:28

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

спасибо! разобрался...

Неактивен

 

#16 17.10.2011 17:15:37

ruslan_fi
Участник
Зарегистрирован: 14.10.2011
Сообщений: 11

Re: дамп таблицы

появилась новая проблема: поиск по кириллическому тексту не работает,когда как по цифрам и ангельским символам работает:

mysql> select * from ofmessagearchive where body='знаю' into outfile 'd:/jabber/file1.csv' character set cp1251 fields terminated by ';' lines terminated by '\r\n';
Query OK, 0 rows affected (0.01 sec)

mysql> select * from ofmessagearchive where body='123' into outfile 'd:/jabber/file1.csv' character set cp1251 fields terminated by ';' lines terminated by '\r\n';
Query OK, 1 row affected (0.04 sec)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson