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? 解释为什么您可能会看到如下错误消息:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |