7

ActiveRecord :: Base Connectionクラスを使用してSQLステートメントを実行した後、PostgreSQLによって処理されたレコードの数を見つけるにはどうすればよいですか?

temp_sql = "UPDATE table_a SET column_a ='abc' WHERE column_b = 1"
result = ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql)

または、これを行うためのより良い方法を提案できますか。上記の更新ステートメントは、質問を簡潔にするための単純なものであることに注意してください。私の実際のクエリは「セットベース」であり、複雑な一時テーブルの作成、更新、挿入ステートメントが含まれます。

4

1 に答える 1

4

PG::Resultクラスで答えが見つかりました。それはcmd_tuples 方法です。

temp_sql = "UPDATE table_a SET column_a ='abc' WHERE column_b = 1"
result = ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql)
number_of_records = result.cmd_tuples
于 2012-12-27T06:02:29.260 に答える