像批量插入一样更新多行

本文关键字:一样 更新 插入 | 更新日期: 2023-09-27 18:05:37

我使用以下场景进行大容量插入:

Dim queryBuilder As New StringBuilder
queryBuilder.Append("Insert into myTable(col1,col2)values")
Dim loopFlag As Boolean = False
For i As Integer = 0 To 150
  queryBuilder.Append("(" & i & ",'" & i & "th Value'),")
Next
If loopFlag Then
  ' call method to execute the query'
   ExecuteQuery(RemoveTrailingComma(queryBuilder.ToString()))
End If

在我的整个项目中,我们经常使用这些技术进行批量插入。是否有类似的批量更新方式?我引用了这些链接,但它们与我的场景不匹配

  • linl1
  • link2

像批量插入一样更新多行

答案就在参考链接中。再仔细检查一遍,或者试试这个:

  queryBuilder.Append("ON DUPLICATE KEY UPDATE col2 = VALUES(col2)")

因此你的整个代码将像这样:

    Dim queryBuilder As New StringBuilder
    queryBuilder.Append("Insert into myTable(col1,col2)values")
    Dim loopFlag As Boolean = False
    For i As Integer = 0 To 150
        queryBuilder.Append("(" & i & ",'" & i & "th Value'),")
    Next
    Dim mySql As String = RemoveTrailingComma(queryBuilder.ToString()) & "ON DUPLICATE KEY UPDATE col2 = VALUES(col2)"
    If loopFlag Then
        ExecuteQuery(mySql)
    End If