Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何使用约束和索引交换postgres数据库中的两个表?_Postgresql - Fatal编程技术网

Postgresql 如何使用约束和索引交换postgres数据库中的两个表?

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

我想维护两个表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_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);
当我们交换表时,应该如何处理额外的约束和索引

提前感谢您的回复