postgresql 9.1.3 で以下のコマンドを使用して、データを一時ステージング テーブルからすべて同じデータベース内の webapp (ジオサーバー) で使用されているテーブルに移動しています。次に、一時テーブルを削除します。
TRUNCATE table_foo;
INSERT INTO table_foo
SELECT * FROM table_temp;
DROP TABLE table_temp;
同時実行を可能にするために、これをトランザクションにラップしたいと思います。データセットは 2000 行未満で、切り捨ては削除よりも高速です。
- これらのコマンドをトランザクションで実行する最良の方法は何ですか?
- 関数を作成することはお勧めですか、それとも UPSERT/MERGE などを CTE に記述しますか?
- TRUNCATE ではなく、すべての行を削除してから、一時テーブルから一括挿入する方がよいでしょうか?
- ロールバックTRUNCATEまたはDELETEを許可するpostgresでは?
- 一時テーブルは、arcpy でスクリプト化された ETL を介して毎日配信されます。postgres 内の切り捨て/削除/一括挿入部分を自動化するにはどうすればよいですか?
- PL/pgsql、PL/python (または postgres に推奨される py) を使用することにオープンです
現在、一時ステージング テーブルが DB にインポートされた後、SQL コマンドを手動で実行しています。