2016-10-31 10 views
0

は、私が最後のクエリによって挿入された行の数をキャプチャするために、次のクエリを使用しています:私は含まれているテーブルに挿入するときID列を含むRedshiftテーブルに挿入された行の数を取得するにはどうすればよいですか? Amazonで赤方偏移で

SELECT SUM(rows) FROM stl_insert WHERE query = pg_last_query_id(); 

このアプローチは動作しないようですRedshiftもこのクエリを実行するため、SELECT * FROM stv_identity_highwaterを使用し、このクエリのIDをpg_last_query_id()に使用するため、IDENTITYカラム。

このシナリオで挿入された行数を取得する別の方法はありますか?

答えて

2

ID列を持つテーブルに値を挿入すると、Redshiftはクエリを内部でSELECT * FROM stv_identity_highwaterとしてカウントし、結果は0になります。

挿入数を取得するためにpg_last_query_id()-1を追加します。

SELECT SUM(rows) FROM stl_insert WHERE query = pg_last_query_id()-1;

+0

こんにちは、コードブロックでSQLクエリをフォーマットできますか?そうすれば読むことがより楽になります。 – Arount

1

STL_QUERYシステムテーブルを使用して、カウントするクエリのIDを抽出することができます。

システムの唯一のユーザーであれば、最後の2番目のクエリがあなたの求めるクエリであると仮定できます。

+0

問題は、私はあなたのユーザーに一致する最新のSTL_QUERYエントリを見つけることができる –

+0

システムのユーザーだけ...じゃないということですID。 –

関連する問題