52

MySQL Workbench で約 1,000,000 レコードのクエリ結果を保存しようとしています。

SELECT を実行すると、1000 レコードしか表示されません (MySQL Workbench のデフォルト制限)。制限を変更または削除できることはわかっていますが、結果パネルに 1,000,000 レコードをロードしたくありません (コンピューターがクラッシュする可能性があります)。ただし、結果をファイルに保存したいです。

MySQL Workbench では、クエリの結果をファイルに直接保存できますか? または、1,000 の代わりに結果セット全体を保存しますか?

4

4 に答える 4

50

クエリ結果の行制限を変更したり、制限を完全に削除したりすることができます。

  1. 編集 → 設定 → SQL エディター (タブ)に移動します。Query Resultsが見つからない場合は、代わりにSQL クエリ (タブ)に移動します。

  2. [クエリ結果] セクションを見つけて、 [行数を制限]チェックボックスをオフにします。

  3. [ OK]をクリックします。

  4. クエリを再実行します。

于 2012-10-13T10:52:22.283 に答える
40

LOAD DATA INFILESELECT ... INTO OUTFILEという兄弟があります。次のように使用できます。

SELECT * FROM mytable
INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

このメソッドは、UI で不要なリソースを使用しません。

@florian指摘したように:ただし、クライアントマシンではなく、データベースサーバーに出力ファイルを作成します。

また、 SELinuxAppArmorなどのセキュリティ フレームワークにより、MySQL が標準データベースフォルダの外にファイルを書き込むことができない場合があることにも注意してください。ディレクトリがユーザーによって書き込み可能であっても、権限が拒否されたというエラーが発生する場合mysqlは、これらのいずれかである可能性があります。

于 2013-04-07T12:00:04.920 に答える
6

'limit $number' を追加して、SQL 句を追加するだけです。制限を追加しない場合、返されるデフォルトの行数は 1000 です。

于 2015-04-28T09:32:37.730 に答える
-1

MySql には、すべてのレコードをエクスポートするためのオプションがあります。名前付きクエリ結果操作。

ここに画像の説明を入力

于 2021-03-02T06:30:29.647 に答える