qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

各数据库的批量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知识要求也相对增加了不少,倘若针对项目要求再将这些进行二次封装那会轻松比少。

posted on 2014-11-19 09:59 顺其自然EVO 阅读(753) 评论(0)  编辑  收藏 所属分类: 数据库


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜