我使用以下模式创建了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库。我的main函数看起来像这样:
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
。死机发生在最后一次错误检查时,因此出现了db.Query(sqlStatement)
行。但是,当我在命令行上运行相同的查询时,结果会正确返回。
我读到这个错误通常意味着表名的拼写不正确。我仔细检查了一下,看起来不是这样的。我还检查了我使用的用户凭证是否具有访问accounts
表的权限。确实如此,所以我希望有些人有过这方面的经验。
发布于 2019-01-18 03:15:28
为了回答我自己的问题,我在错误的数据库下创建了表。我仔细检查了用户,但没有检查我要连接的数据库名称。
https://stackoverflow.com/questions/54242692
复制相似问题