2

だから私は更新ステートメントを持っています:

UPDATE billing_infos set card_number = ''
FROM orders
WHERE billing_infos.order_id = orders.id ...);`

このステートメントによって更新されたレコードの数を確認するにはどうすればよいですか?

私はコンソールでこれを行っているので、オブジェクトActiveRecord::Base.connection.execute()を返すだけです。<PG::Result:0x007f9c99ef0370>

SQLまたはRailsメソッドを使用してこれを行う方法を知っている人はいますか?

4

3 に答える 3

1

Vimsha が示した解決策は間違いなく機能しますが、別の解決策 (十分な最新の pg を使用していると仮定) もあり、これは少し優れている可能性があります。

with u as (
    update ... returning 1
)
select count(*) from u;

これは 1 つのクエリであり、技術的には選択であるため、他の選択と同じように実行します。

于 2013-06-17T15:06:09.967 に答える
0

別の回答のコメントで述べたように、最も簡単な方法は cmd_tuples結果の属性を使用することです

result = ActiveRecord::Base.connection.execute("insert into tbl select 'test' col")
puts result.cmd_tuples

結果

1
于 2016-12-31T02:35:14.820 に答える