Я пытаюсь удалить базу данных с помощью драйвера Postgres (Lib/PQ), выполнив:Golang postgres константа ошибки?
db.Exec("DROP DATABASE dbName;")
Но я хотел бы сделать другой условной зависимости от того ошибка получил что-то странно, или это ошибка «база данных не существует».
Мой вопрос: существует ли постоянная переменная или что-то, что я могу использовать, чтобы проверить, является ли сообщение об ошибке ошибкой «база данных не существует», или мне придется вручную самостоятельно разобрать строку ошибки?
Я попытался посмотреть в документации, но ничего не нашел для «базы данных не существует». Однако я нашел этот список: https://www.postgresql.org/docs/9.3/static/errcodes-appendix.html
Возможно, он подходит под другой код ошибки? Также я не совсем уверен, что семантически правильный способ получения и сравнения кодов ошибок через драйвер Postgres. Я полагаю, я должен сделать что-то вроде этого ?:
if err.ErrorCode != "xxx"
Спасибо.
Любые причины, по которым вы не хотите проверять, существует ли база данных, прежде чем пытаться ее удалить? – Nicarus
Это тоже приемлемое решение, я не знал, что могу это сделать :-) Есть ли запрос на это? – b0xxed1n
Конечно. Проверьте объект pg_database. 'SELECT TRUE AS result FROM pg_database WHERE datname = 'abc';' – Nicarus