我想维护两个主表。 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服务不会关闭。 我的问题是,table_primary和table_secondary使用的约束,索引和序列发生了什么。 对于table_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);
交换表时应如何处理其他约束和索引?
感谢您的回复