Вот он возвращает ошибку типа ERROR: duplicate key value violates unique constraint
Где найти базу ошибки чтобы через errors.Is(err, pgx.ErrSomeThing) можно было чекать?
Очень не хочется в стрингах копаться там, где можно не копаться, а найти в пакете ошибки я чет не осилил слёту...
Давай имена констрейнтам делай type assert к ошибки постгри, это структура, в котором есть поле ConstraintName
так вот я получаю ошибку при скане, а с чем её сравнивать - где взять? Где у pgx специфицированые ошибки лежат?
var pgerr *pgconn.PgError ok := errors.As(err, &pgerr)
Так у него просто нет более конкретных спецификаций? Для определения типа ошибки всё равно придётся в текст влезать?
Из конкретных ошибок я помню только NoRows, если нужна деталка, то только через ассерт. Там структура подробная, выбираешь уже от туда конкретное поле, может тебе достаточно будет доставать только код pg ошибки
спасибо, моим запросам отвечает.
pgerr.SQLState() == "23505" проверка на unique violation
Обсуждают сегодня