【发布时间】:2023-12-08 17:59:01
【问题描述】:
我在 postgresql 9.1.3 中使用以下命令将数据从临时临时表移动到 webapp (geoserver) 中使用的表,所有这些都在同一个数据库中。然后删除临时表。
TRUNCATE table_foo;
-
INSERT INTO table_foo
SELECT * FROM table_temp;
DROP TABLE table_temp;
我想将其包装在事务中以允许并发。数据集小于 2000 行,截断比删除快。
- 在事务中运行这些命令的最佳方式是什么?
- 是否建议在 CTE 中创建函数或编写 UPSERT/MERGE 等?
- 删除所有行然后从临时表批量插入而不是 TRUNCATE 会更好吗?
- 在允许回滚 TRUNCATE 或 DELETE 的 postgres 中?
- 临时表每天通过在 arcpy 中编写的 ETL 交付,如何在 postgres 中自动执行截断/删除/批量插入部分?
- 我愿意使用 PL/pgsql、PL/python(或推荐用于 postgres 的 py)
目前我在临时登台表导入我的数据库后手动执行 sql 命令。
【问题讨论】:
标签: postgresql plpgsql common-table-expression truncate plpython