単一のSQL query
でmysqldump
を実行することは可能ですか?
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
オプションを上記のコマンド例にそれぞれ追加する必要があります。Mysqldumpの--whereオプションを使用して、待っている出力を生成できます。
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Test.t1から最大100行がデータベーステーブルからダンプされます。
乾杯、WB
最後のn個のレコードをファイルにエクスポートしたい場合は、次のようにします。
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
上記は、エクスポート元のテーブルに自動インクリメントされたid列があると仮定して、最後の100レコードをexport_file.sqlに保存します。
ユーザー、ローカルホスト、データベース、テーブルの値を変更する必要があります。オプションで、id列とエクスポートファイル名を変更することができます。
ここに上記の多くを組み合わせることは私の本当の実際的な例です。そして、メートルとタイムスタンプの両方に基づいて記録を選びます。私はこの命令を何年も必要としてきました。本当に速く実行されます。
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