Можно ли сделать mysqldump
одиночным SQL query
?
Я хочу сбросить базу целого, например phpmyadmin
, когда вы экспортируете в SQL
Можно ли сделать mysqldump
одиночным SQL query
?
Я хочу сбросить базу целого, например phpmyadmin
, когда вы экспортируете в SQL
не 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"
Это должно работать
mysqldump --databases X --tables Y --where="1 limit 1000000"
Вы можете отправить запрос как csv следующим образом:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Дамп таблицы с использованием запроса 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
в приведенные выше примеры команд, чтобы указать нужный хост базы данных, пользователя и пароль соответственно.Вы можете использовать параметр --where на mysqldump для создания ожидаемого результата:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Не более 100 строк из test.t1 будут сбрасываться из таблицы базы данных.
Cheers, WB
Сочетание многих из приведенных здесь примеров - это мой реальный практический пример, выбор записей на основе как метрической, так и временной метки. Мне нужна эта команда годами. Выполняется очень быстро.
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
MySQL Workbench также имеет эту функцию аккуратно в графическом интерфейсе. Просто запустите запрос, нажмите значок сохранения рядом с Экспорт/Импорт:
Затем выберите "SQL INSERT statements (*.sql)" в списке.
Введите имя, нажмите "Сохранить", подтвердите имя таблицы, и у вас будет файл дампа.
mysql Экспорт командной строки результатов запроса:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt