ActiveRecord と PostgreSQL で Ruby on Rails を使用しています。
複数の SQL クエリを実行するにはどうすればよいですか?
カスタム移行スクリプトを実行するために必要です。
Foo.connection.execute <<-SQL.split(';').map(&:strip).join
delete from metadata where record_type = 'Foo';
TRUNCATE table1 RESTART IDENTITY;
TRUNCATE table2 RESTART IDENTITY;
delete from schema_migrations where version > '20120806120823';
SQL
私はユーザーからのデータを受け入れていないので、SQL インジェクションについて心配していません。
CLIENT_MULTI_STATEMENTS
たぶんMySQLのようなものですか?
MySQL/PHP ドキュメントから:
CLIENT_MULTI_STATEMENTS : クライアントが単一の文字列で複数のステートメントを送信できることをサーバーに伝えます (「;」で区切られます)。このフラグが設定されていない場合、複数ステートメントの実行は無効になります。このフラグの詳細については、この表の後の注を参照してください。