加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

各数据库的批量Update操作

发布时间:2023-01-09 14:01:39 所属栏目:MySql教程 来源:未知
导读: 一、前言
MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了。
注意:下列批量更新

一、前言

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

最新内容请见作者的GitHub页:

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!