UPSERT不支持WHERE子句。
但是人们使用了以下变通方法:
UPSERT INTO test.MyTable(col1, col2) SELECT col3, col4 FROM test.TempTable WHERE col5 = ABC
这是否意味着如果我有一个用例,需要基于某个键更新MyTable
的所有列,则需要在另一个TempTable
中添加要更新的数据,然后使用与上述类似的命令来更新MyTable
的数据。如果我的理解正确,请告诉我。以某种方式将数据添加到另一个表中只是为了更新源表似乎不正确。