gpt4 book ai didi

postgresql - Postgres Go 查询给出错误关系 TABLE 不存在

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:51 25 4
gpt4 key购买 nike

我有一个使用以下模式创建的 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"does not exist at character 15。 panic 发生在最后一次错误检查时,因此 db.Query(sqlStatement) 行。但是,当我在命令行上运行相同的查询时,结果会正确返回。

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

最佳答案

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

关于postgresql - Postgres Go 查询给出错误关系 TABLE 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54242692/

25 4 0