sql数据库中,update能否实现像insert一样的批量操作?
因为最近总是涉及到 批量update操作,不知道能否批量操作,只能在循环中一个一个的进行update,
所以想问下 sql数据库是否存在一种sql语句使得update能像insert一样批量修改数据。
例如:
账户表account_info: id,姓名name,余额balance
INSERT INTO account_info(name,balance) values('小红',0),('小明',10),('小白',15)
update是否也有类似的语句,比如我有一个数组
[
{name: '小红', sum: 5},
{name: '小明', sum: -8},
{name: '小白', sum: -10}
]
名字和金额一一对应起来,进行一次性的批量更新。使得数据库中数据变为:
[
{id:1, name: '小红', balance: 5},
{id:2, name: '小明', balance: 2},
{id:3, name: '小白', balance: 5}
]
不确定是否有这种方式。 所以提问一下。
如有知道,欢迎回答。
不知道得话,可以收藏一下,万一有人回答了呢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
-- 希望对你们有帮助 --
你这个需求就有问题,update本来就是更新值,插入的时候可以张三、李四、王五一次插入很多条数据,更新的时候你还能把张三的名字同时改成李四和王五?
不过如果更新的值是计算出来的话,比如balance统一加一,倒是可以一起更新,但你这组数据看不出有什么规律
如果用的是java开发,jdbc驱动有batch模式,专门用来执行批量的insert/update语句。
其他语言的话直接搜索一下batch mode吧,我找到一个相关的文章,请参考。
http://thedebuggers.com/mysql...
update
一般支持from
。如果你要更新balance
的变化量保存在balance_change
表中,那么就可以(postgresql):