加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 如何在postgres中替换表?

发布时间:2020-12-13 15:50:57 所属栏目:百科 来源:网络整理
导读:基本上我想这样做: begin;lock table a;alter table a rename to b;alter table a1 rename to a;drop table b;commit; 即获得控制并替换我的旧桌子,而没有人可以访问它. 解决方法 更简单: BEGIN;DROP TABLE a;ALTER TABLE a1 RENAME TO a;COMMIT; 无论如何
基本上我想这样做:

begin;
lock table a;
alter table a rename to b;
alter table a1 rename to a;
drop table b;
commit;

即获得控制并替换我的旧桌子,而没有人可以访问它.

解决方法

更简单:

BEGIN;
DROP TABLE a;
ALTER TABLE a1 RENAME TO a;
COMMIT;

无论如何,DROP TABLE都会在表上获取一个ACCESS EXCLUSIVE锁.显式LOCK命令不是更好.重命名一个死人只是浪费时间.

尝试访问表的并发事务会发生什么?这不是那么简单,请阅读:

> Best way to populate a new column in a large table?

解释为什么您可能会看到如下错误消息:

06001

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读