【问题标题】:How to avoid dropping static table when dropping temp table删除临时表时如何避免删除静态表
【发布时间】:2018-08-08 06:08:39
【问题描述】:

在 postgres 中,当我尝试删除临时表时,如何避免意外删除静态表。 如果临时表 foo 不存在,则下面的查询将删除默认架构上的表 foo

DROP TABLE IF EXISTS foo;
CREATE TEMP TABLE foo AS 

【问题讨论】:

  • 为所有临时表添加前缀temp。命名约定将确保您正在处理要影响的表类。
  • SET search_path to '';
  • 你在玩一个危险的游戏!考虑在临时表上设置前缀以避免这种混淆
  • @GordonLinoff 除非有人会用这个前缀创建静态表。不幸的是,命名约定是不够的,我需要更精确的东西。

标签: sql postgresql temp-tables


【解决方案1】:

临时表是在 pg_temp 架构中隐式创建的。您可以在删除表时指定该架构:

drop table if exists pg_temp.foo;
create temp table foo;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2011-12-17
    • 1970-01-01
    • 2019-05-13
    相关资源
    最近更新 更多