我在postgresql 9.1.3中使用以下命令將數據從臨時登臺表移動到webapp(geoserver)中使用的表中相同的分貝。然後放下臨時表。在事務中包裝postgresql命令:truncate vs delete或upsert/merge
TRUNCATE table_foo;
INSERT INTO table_foo
SELECT * FROM table_temp;
DROP TABLE table_temp;
我想在事務中包裝這個以允許併發。數據集小於2000行,截斷速度快於刪除速度。
- 在事務中運行這些命令的最佳方式是什麼?
- 正在CTE中創建一個建議的函數或寫一個UPSERT/MERGE等?
- 刪除所有行,然後從臨時表中批量插入而不是TRUNCATE會更好嗎?
- 在允許回滾TRUNCATE或DELETE的postgres中?
- 臨時表每天通過一個ETL腳本在ETOP中傳遞,我如何在postgres中自動執行截斷/刪除/批量插入部分?
- 我打開使用PL/pgSQL中,PL/Python的(或者Postgres的推薦PY)
目前,我手動執行SQL命令臨時臨時表導入到我的數據庫之後。
感謝您的建議。這很好。由於是MVCC安全的,我將使用DELETE FROM和TRUNCATE。你有什麼建議或使用python來調用psql命令的經驗。我正在使用pyodbc並將事務置於python查詢字符串中。雖然我聽說過使用psycopg2。 – EnzovsJacques
@EnzovsJacques:對不起,我不使用Python。 –