Abh*_*oni 4 postgresql go database-schema
我正在寻找连接并查询到PostgreSQL。但是我只想连接到特定的模式。
根据文档(JDBC),我们可以使用
jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema
Run Code Online (Sandbox Code Playgroud)
或更新为9.4,你可以指定像这样的新currentSchema参数的网址:
jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
Run Code Online (Sandbox Code Playgroud)
但是我无法使用golang SQL驱动程序执行此操作;
根据文档,我们也可以使用SET search_path TO myschema,public;
但我只想在初始化期间声明一次,但是我认为这需要为新连接每次执行。
另外我正在使用以下代码,请帮助我确定要传递给此参数的正确参数,以便仅与模式连接
db, err := sql.Open("postgres", `dbname=`+s.settings.Database+
` user=`+s.settings.Username+` password=`+s.settings.Password+
` host=`+s.settings.Url+` sslmode=disable`)
Run Code Online (Sandbox Code Playgroud)
正在添加currentSchema=myschema或searchpath=myschema无法正常运行!
有没有办法我只能连接到GO中的特定数据库架构
设置Search_path是对的,你就做一次。IE:
db, err := sql.Open("postgres",
"host=localhost dbname=Test sslmode=disable user=postgres password=secret")
if err != nil {
log.Fatal("cannot connect ...")
}
defer db.Close()
db.Exec(`set search_path='mySchema'`)
rows, err := db.Query(`select blah,blah2 from myTable`)
...
Run Code Online (Sandbox Code Playgroud)
小智 5
您应该添加search_path=myschema到dataSourceName
PS更好地fmt.Sprintf("host=%s port=%d dbname=%s user=%s password='%s' sslmode=disable search_path=%s", ...)代替``+``
| 归档时间: |
|
| 查看次数: |
4256 次 |
| 最近记录: |