Запрос Postgres Go дает сообщение об ошибке TABLE не существует - PullRequest
0 голосов
/ 17 января 2019

У меня есть таблица 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.Это так, так что я надеюсь, что некоторые имели опыт работы с этим.

1 Ответ

0 голосов
/ 17 января 2019

Чтобы ответить на мой собственный вопрос, я создал таблицу в неверной базе данных. Я дважды проверил пользователя, но не имя базы данных, к которой я подключаюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...