与postgreSQL模式连接

与postgreSQL模式连接,postgresql,go,database-schema,Postgresql,Go,Database Schema,我希望连接并查询PostgreSQL。但我只想连接到特定的 根据文档(JDBC),我们可以使用 jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema 或者从9.4开始更新,您可以使用新的currentSchema参数指定url,如下所示: jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema 但我无法使用golangSQL驱动程序实现这一点

我希望连接并查询PostgreSQL。但我只想连接到特定的

根据文档(JDBC),我们可以使用

jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema
或者从9.4开始更新,您可以使用新的currentSchema参数指定url,如下所示:

jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
但我无法使用golangSQL驱动程序实现这一点

根据文档,我们还可以使用
设置搜索路径到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`) 
添加
currentSchema=myschema
searchpath=myschema
无效


有没有一种方法我只能连接到GO中的特定数据库模式?Set Search\u路径正确,您只需执行一次。即:

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`)
...

您应该将
search\u path=myschema
添加到
dataSourceName


另外,最好使用
fmt.Sprintf(“主机=%S端口=%d数据库名=%S用户=%S密码='%S'sslmode=禁用搜索路径=%S”,…)
而不是
`+`

jdbc是java,而不是javago@Woot4Moo,我知道,这就是为什么我提到按照博士;如果不清楚,很抱歉,但是我已经提到了下面的代码片段。我尝试将这些
currentSchema=myschema
添加到语句中,但它不起作用。我正在使用`db,err:=sql.Open(“postgres”,
dbname=
+dbname+`user=
+username+
password=
+password+
主机=
+host+
sslmode=disable
)如果出错!=nil{panic(“主数据库连接失败”)}db.SetMaxIdleConns(40)db.SetMaxOpenConns(160)
所以有很多并行连接,我怀疑或者你能解释我会执行这个
db.Exec(
set search\u path='mySchema'
会为每个连接设置模式吗?@AbhishekSoni你在用不同的方式写我做的事情。每个连接都需要一次exec。就像每个连接需要打开()一样,每个数据库需要执行一次。我对连接的功能感到困惑,但确实想知道
db.Exec(
set search\u path='mySchema'
是每个打开需要一次,而不是每个连接需要一次(例如,我将maxConns设置为40,所以需要执行40次)?你为什么不直接测试看看?@AbhishekSoni你应该使用一个事务