如何使用Postgresql将数据有效地从一个模式复制到另一个模式表-没有列名

时间:2019-06-24 04:15:44

标签: sql postgresql postgresql-9.1 upsert

我有两个模式,每个模式都有一个表。表称为“概念”。一种模式是“ cdm”模式,另一种是“ vocab”模式。

我想根据特定条件将记录从“ vocab”模式的“ concept”表复制到“ cdm”模式的“ concept”表

concept表具有一个名为concept_id的主键和其他几个非主列。

例如:vocab.concept有200条记录。我只想复制满足concept_id> 150

这样的条件的记录

当前,CDM模式(cdm.concept)中的概念表已填充150条记录。因此,我想添加/插入剩余的50条记录(concept_id> 150)

您能告诉我如何进行此复制或忽略重复项并仅复制新记录(即新添加的50条记录)

INSERT INTO cdm.concept(concept_id,Name,Age,Info) 
SELECT concept_id,Name,Age,Info 
FROM vocab.concept 
where concept_id > 150;

问题

  1. 以上sql正确吗?

  2. 这是唯一的方法,因为我的表可能有25列以上,并且我不想每次复制时都键入列名。

  3. 请注意,该表已存在于cdm模式中。因此,我不希望使用“创建表”方法

0 个答案:

没有答案