DEV1-12. 16. Обработка ошибок

  Рет қаралды 4,364

Postgres Professional

Postgres Professional

Күн бұрын

Пікірлер: 10
@maximsmolin8111
@maximsmolin8111 3 жыл бұрын
А самого главного то и не показали, как отлавливать ошибки и делать ROLLBACK
@maximsmolin8111
@maximsmolin8111 3 жыл бұрын
Подскажите, пожалуйста, а можно ли из текущей процедуры увидеть весь стек вызовов вплоть до процедуры верхнего уровня? Вот это было бы здорово, потому что в MS SQL такого не хватало, приходилось изворачиваться через контексты и параметры.
@PostgresProfessional
@PostgresProfessional 3 жыл бұрын
GET CURRENT DIAGNOSTICS
@maximsmolin8111
@maximsmolin8111 3 жыл бұрын
INSERT on CONFLICT очень похож на MERGE из стандарта SQL. Реализован ли MERGE в Postres?
@PostgresProfessional
@PostgresProfessional 3 жыл бұрын
Нет. Про историю вопроса: habr.com/en/company/postgrespro/blog/412605/
@maximsmolin8111
@maximsmolin8111 3 жыл бұрын
А что будет, если я сделаю переменные с именами no_data_found или too_many_rows? Просто пугает вероятность того, что в будущем твоя переменная может внезапно войти в вокабуляр Postrges и программа перестанет работать.
@PostgresProfessional
@PostgresProfessional 3 жыл бұрын
Это разные пространства имен. У вас могут быть переменные с такими именами, и это ничему не мешает.
@maximsmolin8111
@maximsmolin8111 3 жыл бұрын
Печально. Такое поведение было в MS SQL до версии 2005, когда после каждого оператора нужно было использовать обработку IF @@ERROR 0 . Но когда в 2005 году появилась конструкция TRY..CATCH жить стало намного легче, так как любые ошибки приводили в секцию CATCH, где можно было делать единую обработку и ROLLBACK. Поведение Postgres отстает от современного уровня на 16 лет. Надеюсь, в следующих версиях это допилят.
@PostgresProfessional
@PostgresProfessional 3 жыл бұрын
А чем вам EXCEPTION не CATCH?
@maximsmolin8111
@maximsmolin8111 3 жыл бұрын
@@PostgresProfessional в catch можно делать rollback, или не делать в случае "бизнес ошибок", а выполнить, например, другой "исправляющий" код. На PGConf2021 пообщался с Егором Роговым и он предложил выход - в блоке exception взводить флаг, по которому в дальнейшем делать/не делать rollback.
DEV1-12. 17. Триггеры
56:40
Postgres Professional
Рет қаралды 6 М.
DEV1-12. 11. Обзор и конструкции языка PL/pgSQL
34:36
Postgres Professional
Рет қаралды 12 М.
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Курс: DEV1. Тема 17. PL/pgSQL: «Обработка ошибок»
1:01:33
Обзор PostgreSQL 17 - Павел Лузанов, PGConf.Russia 2024
52:17
Postgres Professional
Рет қаралды 11 М.