我正在处理一些代码。有几个查询,其效果是,如果行存在并填充了一些数据,则使用其余数据更新该行,如果该行不存在,则创建一个新行。它们看起来像这样:
插入表名(col1,col2,col3) 选择 %s 作为 COL1、%s 作为 COL2、%s 作为 COL3 从(选择 %s 作为 COL1,%s 作为 COL2,%s 作为 COL3)A 左连接表名 B 开 B.COL1 = %s AND B.COL2 = %s --注意:这里没有提到所有列 B.id 为空 限制 1
我可以模仿这种模式并且它似乎有效,但我对幕后实际发生的事情感到困惑。谁能阐明这实际上是如何工作的?我正在使用 PostgreSQL。