在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用户对数据库的权限
答案 0 :(得分:1)
您的连接字符串:
postgres://postgres:postgres@localhost/user_details?sslmode=disable
表示您正在连接到user_details
数据库。也许您是在其他数据库中创建了users
表。
答案 1 :(得分:-1)
您的代码似乎没有问题,并且似乎可以正常工作。我高度怀疑表users
是否确实存在于所选数据库user_details
中。