Mat*_*att 5 jdbc insert hsqldb
有没有人知道通过调用INSERT来制作HSQLDB更新列的解决方案.我希望我的代码能够插入,如果已有数据,则更新该数据.我知道MySQl,我相信,它已经'重复关键更新'.我似乎无法找到任何最近的文档.
Ant*_*ton 10
关于MERGE语句的正式文档,有时候一个好的样本会更好:)
样品1
对于MY_TABLE带有列(COL_A和COL_B)的table(),其中第一列是主键:
MERGE INTO MY_TABLE AS t USING (VALUES(?,?)) AS vals(a,b)
ON t.COL_A=vals.a
WHEN MATCHED THEN UPDATE SET t.COL_B=vals.b
WHEN NOT MATCHED THEN INSERT VALUES vals.a, vals.b
Run Code Online (Sandbox Code Playgroud)
样本2
让COL_C我们在表中添加另一列():
MERGE INTO MY_TABLE AS t USING (VALUES(?,?,?)) AS vals(a,b,c)
ON t.COL_A=vals.a
WHEN MATCHED THEN UPDATE SET t.COL_B=vals.b, t.COL_C=vals.c
WHEN NOT MATCHED THEN INSERT VALUES vals.a, vals.b, vals.c
Run Code Online (Sandbox Code Playgroud)
样本3
现在让我们将主键更改为前两列(COL_A和COL_B):
MERGE INTO MY_TABLE AS t USING (VALUES(?,?,?)) AS vals(a,b,c)
ON t.COL_A=vals.a AND t.COL_B=vals.b
WHEN MATCHED THEN UPDATE SET t.COL_C=vals.c
WHEN NOT MATCHED THEN INSERT VALUES vals.a, vals.b, vals.c
Run Code Online (Sandbox Code Playgroud)
请享用!
| 归档时间: |
|
| 查看次数: |
3830 次 |
| 最近记录: |