postgresql - 两种不同形式的数据库连接字符串

标签 postgresql go

我有两个不同的代码来连接 postgresql 和 golang 像这样的第一个代码

connStr := fmt.Sprintf("user=%s password=%s dbname=%s sslmode=disable", user, password, dbName)

第二个是这样的

connStr := fmt.Sprintf("postgres://%s:%s@localhost/%s?sslmode=disable", user, password, dbName)

它们有什么区别?我什么时候必须使用第二个?

最佳答案

它们都有效,据我所知它们之间没有真正的区别。

import "database/sql"

import _ "github.com/lib/pq"

connStr := fmt.Sprintf("postgres://%s:%s@localhost/%s?sslmode=disable", user, password, dbName)
db, err := sql.Open("postgres", connStr)

/////////////////////////////

import "database/sql"

import _ "github.com/lib/pq"

connStr := fmt.Sprintf("user=%s password=%s dbname=%s sslmode=disable", user, password, dbName)
db, err := sql.Open("postgres", connStr)
if err != nil {
    log.Fatal(err)
}

您可以在此处找到更多信息:https://godoc.org/github.com/lib/pq

关于postgresql - 两种不同形式的数据库连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662555/

相关文章:

postgresql - 消除从 postgresql 上的 JOIN SQL 查询返回的重复记录

postgresql - docker 容器中的 postgresql 启动缓慢

postgresql - 方法 org.postgresql.jdbc4.Jdbc4Connection.isValid(int) 尚未实现

go - 如何使用带有 http.TimeoutHandler 的 gorilla 多路复用器

sql - TypeORM:列必须出现在 GROUP BY 子句中或在聚合函数中使用

postgresql 数据库结构脚本

html - 提交表单时未设置内容类型

python - 无法构建 Go 应用程序 : . .. : can't find import: "code. google.com/p/go.net/html

postgresql - 运行 postgres 查询时出现无效内存地址错误

vim - 为 VIM 添加 GoLang 语法高亮