Postgresql 如何使用约束和索引交换postgres数据库中的两个表?
我想维护两个表primary和secondary。API服务从主表为客户机提供服务。当我必须重新填充这些表时,我会写入一个新表,并更改二级和初级,如下所示Postgresql 如何使用约束和索引交换postgres数据库中的两个表?,postgresql,Postgresql,我想维护两个表primary和secondary。API服务从主表为客户机提供服务。当我必须重新填充这些表时,我会写入一个新表,并更改二级和初级,如下所示 BEGIN; DROP TABLE "public.table_secondary" ALTER TABLE "public.table_primary" RENAME TO "public.table_secondary"; ALTER TABLE "public.table_new" RENAME TO "public.table_pr
BEGIN;
DROP TABLE "public.table_secondary"
ALTER TABLE "public.table_primary" RENAME TO "public.table_secondary";
ALTER TABLE "public.table_new" RENAME TO "public.table_primary";
COMMIT;
这样,当重新填充表时,API服务不会停止。
我的问题是,用于表\主表和表\辅表的约束、索引和序列会发生什么变化。
对于表_primary,在创建过程中使用的其他DDL语句包括:
CREATE SEQUENCE public.seq1
ALTER TABLE public.table_primary ADD COLUMN id bigint NOT NULL DEFAULT nextval('seq1');
ALTER TABLE ONLY public.table_primary ADD CONSTRAINT pkeyconstraint PRIMARY KEY (id);
ALTER TABLE public.table_primary ADD CONSTRAINT uniqueidfk FOREIGN KEY (uniqueid) REFERENCES externaltable2 (id);
CREATE INDEX IF NOT EXISTS index ON table_primary (uniqueid);
当我们交换表时,应该如何处理额外的约束和索引
提前感谢您的回复