Дамп MySQL по запросу

Можно ли сделать mysqldump одиночным SQL query?

Я хочу сбросить базу целого, например phpmyadmin, когда вы экспортируете в SQL

Ответ 1

не mysqldump, а mysql cli...

mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase

вы можете перенаправить его в файл, если хотите:

mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt

Обновление: Оригинальный пост спросил, может ли он сбросить базу данных по запросу. То, что он спросил, и что он имел в виду, было другим. Он действительно хотел просто mysqldump для всех таблиц.

mysqldump --tables myTable --where="id < 1000"

Ответ 2

Это должно работать

mysqldump --databases X --tables Y --where="1 limit 1000000"

Ответ 3

Вы можете отправить запрос как csv следующим образом:

SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

Ответ 4

Дамп таблицы с использованием запроса where:

mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql

Сбросьте всю таблицу:

mysqldump mydatabase mytable > data.sql

Примечания:

  • Замените mydatabase, mytable и оператор where с вашими желаемыми значениями.
  • По умолчанию mysqldump будет включать в свой вывод выражения DROP TABLE и CREATE TABLE. Поэтому, если вы хотите не удалять все данные в таблице при восстановлении из файла сохраненных данных, убедитесь, что вы используете параметр --no-create-info.
  • Вам может потребоваться добавить соответствующие опции -h, -u и -p в приведенные выше примеры команд, чтобы указать нужный хост базы данных, пользователя и пароль соответственно.

Ответ 5

Вы можете использовать параметр --where на mysqldump для создания ожидаемого результата:

mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql

Не более 100 строк из test.t1 будут сбрасываться из таблицы базы данных.

Cheers, WB

Ответ 6

Сочетание многих из приведенных здесь примеров - это мой реальный практический пример, выбор записей на основе как метрической, так и временной метки. Мне нужна эта команда годами. Выполняется очень быстро.

mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep  '^INSERT' > 5406.sql

Ответ 7

MySQL Workbench также имеет эту функцию аккуратно в графическом интерфейсе. Просто запустите запрос, нажмите значок сохранения рядом с Экспорт/Импорт:

введите описание изображения здесь

Затем выберите "SQL INSERT statements (*.sql)" в списке.

введите описание изображения здесь

Введите имя, нажмите "Сохранить", подтвердите имя таблицы, и у вас будет файл дампа.

Ответ 8

mysql Экспорт командной строки результатов запроса:

mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt