目前场景: 数据库迁移, 操作就是目标库建表, 源库 select 数据 insert 到目标库
/*
models.go
*/
type xx1 struct {
id int `db:"id"`
...
}
type xx2 struct {
id int `db:"id"`
...
}
我想实现一个 insert 函数, 这样做插入的时候只需要传入 sql
select .... from ...
insert ....
和对应的 model 的数组, 类似这种实现.
func InsertTable(selectSql string, insertSql string, soruce *sqlx.DB, target *sqlx.DB, items []T) error {
...
source.Select(&items, selectSql)
target.NamedExec(insertSql, items)
...
}
各位有什么好的的实现办法吗.
1
zmqiang 2019-07-26 11:42:42 +08:00 via iPhone
两数据 scan 到 interface 里,然后直接将 intreface 作为参数插入
|
2
LeeSeoung 2019-07-26 11:43:25 +08:00
说个跟楼主问题无关的问题。。这样迁移数据库,一是效率慢,二是增加原数据库压力。
|
4
opentrade 2019-07-26 12:30:27 +08:00 via Android
上次我干这种活是用 dbeaver,把 postgres 里的表导到 sqlite
|
5
reus 2019-07-26 15:05:41 +08:00
和泛型有什么关系?
|
6
SuperMild 2019-07-26 15:11:43 +08:00
你随便找个 orm 来用就好了
|
9
2pang 2019-07-26 19:04:31 +08:00
最近也在学 go,边学边用 go 开发了一个博客网站用来记录学 go 的过程,https://blog.v2start.com
|