我需要创建一个例程来定期检查数据库,并在必要时进行更改。
让我用以下示例解释我的问题。 数据库存储了比赛的参与者和获胜者。
我们得到了两个存储基本数据的表(比赛,人员) 此外,我们还有两个表格可供参考。
现在,脚本应该从获胜者表中获取所有条目并将其插入参与者表中,因为每个获胜者也是参与者。
y1 <- rep(sample(c(1:10),10, replace = TRUE))
y2 <- rep(sample(c(1:10),10, replace = TRUE))
但是,数据库的某些用户会在参与者表中手动插入赢家,有些则不会。 由于可能会出现PK违规,因此上面的代码无效。
仅当条目尚未在参与者表中时,如何告诉语句进行插入?
在此先感谢您的英语水平,并记住上面的示例是虚构的,我知道所描述的数据模型并不完全适合所描述的用例。
答案 0 :(得分:2)
merge ParticipantTable as trg
using WinnerTable as src on src.pk_col1 = trg.pk_col1
and src.pk_col2 = trg.pk_col2
... /* here is PK columns binding */
when not matched then
insert (col1, col2, col3, ...)
values (src.col1, src.col2, src.col3, ...);