我在 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;")
- 1 回答
- 0 关注
- 292 浏览
添加回答
举报
0/150
提交
取消