各數據庫的批量Update操作

MyBatis的update元素的用法與insert元素基本相同,因此本篇不打算重複了。本篇僅記錄批量update操作的sql語句,懂得SQL語句,那麼MyBatis部分的操作就簡單了。
  注意:下列批量更新語句都是作爲一個事務整體執行,要不全部成功,要不全部回滾。
MSSQL的SQL語句
 WITH R AS(
  SELECT 'John' as name, 18 as age, 42 as  id
  UNION ALL
  SELECT 'Mary' as name, 20 as age, 43 as  id
  UNION ALL
  SELECT 'Kite' as name, 21 as age, 44 as  id
  )
  UPDATE TStudent SET name = R.name, age = R.age
  FROM R WHERE R.id = TStudent.Id
 MSSQL、ORACLE和MySQL的SQL語句
UPDATE TStudent SET Name = R.name, Age = R.age
  from (
  SELECT 'Mary' as name, 12 as age, 42 as id
  union all
  select 'John' as name , 16 as age, 43 as id
  ) as r
  where ID = R.id
  SQLITE的SQL語句
當條更新:
  REPLACE INTO TStudent(Name, Age, ID)
  VALUES('Mary', 12, 42)
  批量更新:
  REPLACE INTO TStudent(Name, Age, ID)
  SELECT * FROM (
  select 'Mary' as a, 12 as b, 42 as c
  union all
  select 'John' as a, 14 as b, 43 as b
  ) AS R
   說明:REPLACE INTO會根據主鍵值,決定執行INSERT操作還是UPDATE操作。
  總結
  本篇突出MyBatis作爲半自動ORM框架的好處了,全手動操控SQL語句怎一個爽字了得。但對碼農的SQL知識要求也相對增加了不少,倘若針對項目要求再將這些進行二次封裝那會輕鬆比少。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章