1

ファイル my_query.sql に次のクエリ スクリプトがあります。

select * from my_table;
delete from my_other_table where id > 5;
select * from my_other_table;

Rubyの「mysql」gemを介してこれを実行しようとしていますが、2つの重要な問題が発生しています

  1. クエリには複数のステートメントがあり、ruby gem では .query(...) メソッドを使用して一度に 1 つずつクエリする必要があります。
  2. クエリには複数の select ステートメントがあり、gem はハッシュを返すため、複数の結果セットが返されるかどうかはわかりません。

理想的には、unix / bashで、私はただできる

mysql my_schema < my_query.sql > my_out_file.txt

これにより、スクリプト全体が一度に実行され (問題 #1 の解決)、すべての select ステートメントの結果がプレーン テキストとして出力されます (問題 #2 の解決)。

Rubyには、クエリファイルを実行して出力全体をファイルにダンプする同様のオプションがありますか?

注: これを実行するためにシェルを実行したり、system(...) を使用したりできることは承知していますが、ここでは受け入れられるオプションではありません。mysql gem (または同様の gem) を介してこれを行う方法はありますか?

ありがとう!

4

2 に答える 2