私はいくつかのコードを扱っています。一部のデータが入力された行が存在する場合、その行は残りのデータで更新され、行が存在しない場合は新しい行が作成されるという効果を持つクエリがいくつかあります。それらは次のようになります。
INSERT INTO テーブル名 (col1、col2、col3) %s を COL1 として、%s を COL2 として、%s を COL3 として選択 FROM (%s を COL1 として、%s を COL2 として、%s を COL3 として選択) A LEFT JOIN テーブル名 B ON B.COL1 = %s AND B.COL2 = %s --注: ここではすべての列について言及しているわけではありません B.id が NULL の場合 リミット 1
私はこのパターンを模倣することができ、それは機能しているように見えますが、実際に舞台裏で何が起こっているのか混乱しています. これが実際にどのように機能するかを誰かが解明できますか? 私はPostgreSQLを使用しています。