gpt4 book ai didi

postgresql - 在 PostgreSQL 中删除临时表?

转载 作者:行者123 更新时间:2023-11-29 12:08:05 25 4
gpt4 key购买 nike

想知道是否应该删除严格按照它们在其中声明的函数使用的临时表? postgreSQL 的新手,没有找到关于该主题的太多信息。我知道在 SQL 中这是自动处理的,但 MS SQL 和 postgreSQL 肯定有它们的区别。如果有必要,就删除函数中声明的临时表而言,您认为最佳做法是什么?

最佳答案

对于 MS 和 Pg,它们有些不同。 Ms 特别对待在 SP 中创建的本地临时表 - drops on the completion of the procedure Postgres 没有 currently support GLOBAL临时表(在 create 语句中指定它被忽略)

Optionally, GLOBAL or LOCAL can be written before TEMPORARY or TEMP. This presently makes no difference in PostgreSQL and is deprecated;

我想说,最佳实践在这里不太适用。在 session 期间保留临时表是可以的(它们将在最后删除)。但是通常您更喜欢使用 ON COMMIT DROP 在事务结束后删除表,而不是 session ...如果无尽的 session 对于 postgres 来说比较合适,那么对于 MVCC 和锁定等等,无尽的事务可能是马马虎虎关于...您可能还想查看ways to fight it ...

总结一下:通常的做法是让临时表一直持续到 session 结束,更“正常”的做法是让它们一直持续到事务结束。 Postgres 不会特别对待在 fn() 中创建的临时表。 Postgres 没有 GLOBAL 临时表。根据您编写的代码和您拥有的环境,您可能希望删除或保留临时表以自动删除。在这里也要注意 session /事务池的特殊性。

关于postgresql - 在 PostgreSQL 中删除临时表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51048616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com