在GoLang中运行SQL查询时,PQ Relation不存在

时间:2019-02-08 18:37:27

标签: postgresql go insert

在GoLang中对我的数据库运行任何SQL查询时,出现以下错误,有人知道我还有其他可以尝试解决的问题吗?

pq: relation "users" does not exist

我尝试过的事情:

检查了数据库的权限,一切正常。
检查凭据是否可以
通过psql
直接在SQL数据库上运行INSERT语句 创建了一个简约程序,以确保代码中没有其他内容
手动将值输入查询字符串,而不使用参数
尝试了SELECT语句,并遇到了同样的问题。只是找不到用户表。
我已经通过const变量构建了连接字符串,如下所示。都没有。
我尝试过,但没有端口(5432)

下面的代码就是我所拥有的(最低要求的应用程序输出与我的主应用程序相同的错误)

func main() {
sqlInfo := fmt.Sprintf("postgres://postgres:postgres@localhost/user_details?sslmode=disable")

db, err := sql.Open("postgres", sqlInfo)
defer db.Close()

if err != nil {
    fmt.Fprintf(os.Stdout, "Connection to the database failed")
    return
}
err = db.Ping()

if err != nil {
    fmt.Fprintf(os.Stdout, "Connection to the database failed")
    return
}

fmt.Fprintf(os.Stdout, "You have connected to the database successfully")

sqlQuery := `INSERT INTO users ("user_id", "username", "password", "email", "gender", "gang") VALUES ($1, $2, $3, $4, $5, $6)`
_, err = db.Exec(sqlQuery, 1, "Ross8839", "rocky8839", "ross88399@hotmail.com", "Female", "Greengos")
if err != nil {
    fmt.Fprintf(os.Stdout, "Failed to query db")
    panic(err)
}
}

我希望上面的代码是不正确的,因为我已经在Windows环境中工作了,但是我不想使用Windows进行开发。这一切都在我的Linux环境中,并且自从迁移以来...我遇到了这个问题。

以下是postgres用户对数据库的权限

https://i.imgur.com/ZqFUrek.png

2 个答案:

答案 0 :(得分:1)

您的连接字符串:

postgres://postgres:postgres@localhost/user_details?sslmode=disable

表示您正在连接到user_details数据库。也许您是在其他数据库中创建了users表。

答案 1 :(得分:-1)

您的代码似乎没有问题,并且似乎可以正常工作。我高度怀疑表users是否确实存在于所选数据库user_details中。