为了账号安全,请及时绑定邮箱和手机立即绑定

你能在 Golang 中使用 SQLite ATTACH 和 DETACH

你能在 Golang 中使用 SQLite ATTACH 和 DETACH

Go
牧羊人nacy 2022-01-10 16:31:35
我在 Golang 应用程序中使用https://github.com/mattn/go-sqlite3。我需要使用多个数据库,并且想知道我是否可以在 Golang 中使用 ATTACH 和 DETACH ( http://sqlite.org/lang_attach.html )。我现在没有任何代码,因为除了创建两个数据库连接并在应用程序中加入数据之外,我不知道如何解决这个问题:db1, err := sql.Open("sqlite3", "./db1.db")db2, err := sql.Open("sqlite3", "./db2.db")// query db1 and db2// put into map// join data如果你可以使用它会容易得多:attach database database1.db as db1;attach database database2.db as db2;select  *from  db1.SomeTable a    inner join   db2.SomeTable b on b.SomeColumn = a.SomeColumn;
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

您可以附加一个数据库,您可以在打开第一个数据库后在 SQL 中执行此操作(为简洁起见,省略错误检查):


db1, err := sql.Open("sqlite3", "./db1.db")

defer db1.Close()


s := "attach database '/path/to/db2.db' as db2;"


_, err = db.Exec(s)


s = `select *

     from db1.SomeTable a

     inner join db2.SomeTable b on b.SomeColumn = a.SomeColumn; `


results, err := db.Query(s)

defer results.Close()


//process results ...


_, err = db.Exec("detach database db2;")


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信