我有两个模式,每个模式都有一个表。表称为“概念”。一种模式是“ 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;
问题
以上sql正确吗?
这是唯一的方法,因为我的表可能有25列以上,并且我不想每次复制时都键入列名。
请注意,该表已存在于cdm模式中。因此,我不希望使用“创建表”方法