Таблицы Mysqldump, исключая некоторые поля

14

Есть ли способ mysqldump таблицы без каких-либо полей?

Позвольте мне объяснить: у
меня есть база данных MySQL tests. В У testsменя есть 3 таблицы: USER, TOTOи TATA. Я просто хочу mysqldump некоторые поля таблицы USER, поэтому исключая некоторые поля, такие как mail, ip_loginи т. Д.

Как я могу это сделать?

Мат
источник

Ответы:

13

Попробуй это:

SELECT column1, column2, column10
FROM USER
INTO OUTFILE "c:/user.csv"
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY "\n";

Для более подробной информации прочитайте страницу документации .

lg_
источник
8

Это не может быть сделано с MySQL напрямую. Однако вы можете создать временную таблицу или представление, которое не содержит данных, о которых идет речь, а затем вывести полученные данные. В случае представления, я думаю, вам придется использовать INTO OUTFILEвместо mysqldump для получения данных, которые вы хотите, но использование представления вместо временной таблицы имеет то преимущество, что не занимает дополнительное место в СУБД.

Другой вариант - создать для файла синтаксический анализатор для удаления ненужных полей. Мягко говоря, это может усложниться очень быстро, то есть усложнится, если вы захотите создать надежный синтаксический анализатор в лице многобайтовых символов, экранированных разделителей строк и т. Д., И т. Д. Но для тривиального или одного время использования, он все еще может быть допустимым вариантом.

BMDan
источник
0

Вы также можете использовать Phpmyadmin для этого. Создайте запрос, чтобы выбрать нужные поля, затем выберите функцию «экспорт» в нижней части страницы (это экспортирует результаты вашего запроса, а не всю таблицу) и выберите параметр «Пользовательский». Затем вы можете выбрать SQL в качестве формата - если хотите, вы можете создать серию запросов UPDATE, а не INSERTS. Часто это может быть быстрый способ сделать что-то подобное.

похлопывание
источник
0

Многие инструменты администратора БД имеют возможность выполнять пользовательский импорт. В частности, я выполнил это с помощью Toad for MySQL для передачи данных между таблицами с использованием автоинкрементных PK.

Я сохранил результат запроса в Excel с помощью мастера экспорта.

Затем вы можете исключить столбцы с помощью мастера импорта, задав для поля источника значение: Пропустить этот столбец

Мастер импорта

rrhartjr
источник