У меня есть таблица 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 и использую нативную библиотеку sql Go.Моя основная функция выглядит так:
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
.Это так, так что я надеюсь, что некоторые имели опыт работы с этим.