此问题已经在这里有了答案:
如果表尚未包含这些值,我想插入到表中。
这是我的桌子
ID | Col1 | Col2 | Col3 | Col4
我的表包含以下数据:
0 | “ a1” | “ a2” | “ a3” | “ a4” |
1 | “ b1” | “ b2” | “ b3” | “ b4” |
2 | “ c1” | “ c2” | “ c3” | “ c4” |
我不想插入以下输入:
3 | “ b1” | “ b2” | “ b3” | “ d4” |
但是允许以下内容:
3 | “ a1” | “ b2” | “ c3” | “ d4” |
我尝试了以下操作
INSERT INTO my_table (Col1, Col2, Col3, Col4) SELECT * FROM (SELECT :val1, :val2, :val3, :val4) as tmp WHERE NOT EXISTS (SELECT 1 FROM my_table WHERE Col1=:val1 AND Col2=:val2 AND Col3=:Val3)
除非:val1 ==:val2,否则此方法正常。
是否有插入和避免重复的更好方法?
您可以通过组合unique constraint/primary key
以插入唯一记录来创建(Col1, Col2, Col3)
。>
您可以使用