golang 数据库批量提交思路

简介: golang db

go 操作数据库的库,没有像 java jdbc 那样得到众多数据库厂家的广泛支持。例如 golang 操作 oracle 数据库需要借助 oracle client 的支持。对于批量操作数据,众多golang 封装的库,都没有提供类似 java jdbc 中 PreparedStatement 的操作。鉴于此,从数据库提供的语法层面来解决,不失为一种考虑。
以 oracle 为例,可以使用 in,union ,union all ,等语法拼接sql 语句。[注:单条语句长度要适当]

  • 前置条件:假设表 T1 有两个字段 id(数字类型),name,(字符类型)
  • 要根据具体业务选择 union 或 union all
  • eg-insert

insert into T1 select 1,"value1" from dual union all
insert into T1 select 2,"value2" from dual union all
...

  • eg-delete

delete from T1 where id in(1,2,... 依次拼接);

  • eg-update

update T1 set name=name||'test' where id in(1,2,... 依次拼接);

这种方式拼接方式局限也很明显,有拼接参数的负担,拼接参数也不是无限长,要根据实际业务考虑截断。暂时没有想到其他更优的方法。

目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
探索Gorm - Golang流行的数据库ORM框架
探索Gorm - Golang流行的数据库ORM框架
|
10月前
|
SQL 关系型数据库 MySQL
GO web 开发 实战三,数据库预处理
GO web 开发 实战三,数据库预处理
|
1月前
|
SQL 关系型数据库 MySQL
go如何使用SQLX操作MySQL数据库?
sqlx是Go语言中一款流行的第三方数据库操作包,它扩展了Go标准库`database/sql`的功能,极大地简化了数据库操作流程并提供了丰富的数据库交互方法。
|
4月前
|
关系型数据库 Go 数据库
【Go语言专栏】Go语言中的数据库迁移与版本控制
【4月更文挑战第30天】本文介绍了Go语言中的数据库迁移和版本控制。针对数据库迁移,文章提到了使用Flyway和Liquibase两个工具。通过示例展示了如何在Go中集成这两个工具进行数据库结构的修改,以适应业务变化。而对于版本控制,文章以Git为例,说明了如何利用Git进行源代码和配置文件的管理,确保代码一致性与可追溯性。
158 0
|
4月前
|
SQL 关系型数据库 MySQL
【Go语言专栏】使用Go语言连接MySQL数据库
【4月更文挑战第30天】本文介绍了如何使用Go语言连接和操作MySQL数据库,包括选择`go-sql-driver/mysql`驱动、安装导入、建立连接、执行SQL查询、插入/更新/删除操作、事务处理以及性能优化和最佳实践。通过示例代码,展示了连接数据库、使用连接池、事务管理和性能调优的方法,帮助开发者构建高效、稳定的Web应用。
968 0
|
4月前
|
SQL 关系型数据库 Go
【Go语言专栏】Go语言中的数据库操作基础
【4月更文挑战第30天】本文介绍了Go语言中使用`database/sql`包与SQLite数据库交互的基础,包括导入包、建立连接、创建表、插入、查询、更新和删除数据。还涉及事务处理和错误处理,强调了错误检查的重要性。通过示例代码,展示了如何在Go中执行常见的数据库操作。更多学习资源可参考Go语言官方文档和SQLite官方文档。
67 0
|
1月前
|
关系型数据库 MySQL 数据库连接
在 Go 中管理多个数据库连接
在 Go 中管理多个数据库连接
|
1月前
|
SQL 关系型数据库 MySQL
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
|
1月前
|
缓存 监控 Go
[go 面试] 缓存策略与应对数据库压力的良方
[go 面试] 缓存策略与应对数据库压力的良方
|
3月前
|
关系型数据库 MySQL Go
Go语言介绍以及如何在Go语言中操作MySQL数据库
Go语言介绍以及如何在Go语言中操作MySQL数据库
48 3