登录
首页 >  Golang >  Go问答

Postgres Go 查询报错:表未找到

来源:stackoverflow

时间:2024-03-07 14:30:26 460浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《Postgres Go 查询报错:表未找到》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我使用以下架构创建了一个 postgres 表:

create table accounts
(
accountid       varchar(56)  primary key,
balance         bigint       not null check (balance >= 0),
seqnum          bigint       not null,
numsubentries   int          not null check (numsubentries >= 0),
homedomain      varchar(32)  not null,
thresholds      text         not null,
lastmodified    int          not null
);

我使用 postgres 作为我的 sql 驱动程序并使用 go 的本机 sql 库。我的主要功能如下所示:

func main() {
    psqlInfo := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
    db, err := sql.Open("postgres", psqlInfo)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        panic(err)
    }

    sqlStatement := "SELECT * FROM accounts WHERE accountid='123'"
    log.Println(sqlStatement)

    rows, err := db.Query(sqlStatement)
    if err != nil {
        panic(err)
    }
    defer rows.Close()
}

当我运行此命令时,收到错误 relation“accounts”在字符 15 处不存在。恐慌发生在最后一次错误检查时,因此出现 db.query(sqlstatement) 行。但是,当我在命令行上运行相同的查询时,结果会正确返回。

我读到此错误通常意味着表名拼写不正确。我仔细检查了这一点,似乎并非如此。我还检查了我使用的用户凭据是否有权访问 accounts 表。确实如此,所以我希望有些人有这方面的经验。


解决方案


为了回答我自己的问题,我在错误的数据库下创建了表。我仔细检查了用户,但没有检查我要连接的数据库名称。

好了,本文到此结束,带大家了解了《Postgres Go 查询报错:表未找到》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>