powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не откатывать инсерт при роллбеке функции
10 сообщений из 10, страница 1 из 1
Не откатывать инсерт при роллбеке функции
    #38669369
Фотография Orin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Подскажите пожалуйста как сделать так, чтобы инсерт который отрабатывает внутри функции не удалялся, если функция завершилась неуспешно и прошел ее rollback?


p.s - вопрос возник вот почему, есть функция log(text) - которая записывает сообщения в таблицу лога. Эту функцию вставляю в тело других plpgsql процедур, нужна для логирования параметров. Но если "родительская" процедура завершается с ошибкой, то при роллбеке записи из таблицы логов тоже удаляются.


Спасибо.
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38669479
drsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Orin, заверни инсерт, в дблинк
http://www.postgresql.org/docs/9.3/static/dblink.html
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38672455
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drsm,

1. Необходимо приимущество транзакций использовать как преимущество, а не как недостаток вашей логики,
2. Зачем что то логировать если транзакция закончилась ошибкой? для этого есть exception
3. Если сильно нужно, то лучше ловить такие вещи на уровне приложения, а не костылить.
4. Сильно сомневаюсь что dblink здесь поможет. Так и вообще, зачем гвозди забивать кувалдой:?
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38672476
drsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200,
1) видимо от недостатка логики взрослые потсоны придумали PRAGMA AUTONOMOUS_TRANSACTION
2) затем чтобы логгировать )
3) открыть два коннекта на уровне приложения в одном делать дела, в другом писать лог. ок, попробуй сделай это на чем-нибудь асинхронном типа node.js, получатся весьма забавные сопли.
4) поможет )
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38673108
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drsm,
О PRAGMA AUTONOMOUS_TRANSACTION я не слышал (спасибо), по этому в таком случае конечно лучше использовать данный подход. Потому как его использование, предположительно самой логикой работы транзакций. Все другие варианты - это костыли, которых лучше избегать.
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38673123
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200drsm,
О PRAGMA AUTONOMOUS_TRANSACTION я не слышал (спасибо), по этому в таком случае конечно лучше использовать данный подход. Потому как его использование, предположительно самой логикой работы транзакций. Все другие варианты - это костыли, которых лучше избегать.

PRAGMA AUTONOMOUS_TRANSACTION - чисто оракловая фича...
в postgresql реализуется через костыль в виде dblink

логгирование/аудит - наверное единственные разумные и допустимые применения для такого подхода
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38673713
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,
Верно, я поверхностно прочитал и не заметил что под Oracle. Ну не знаю, все равно как то оно не того))
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38673720
какабычна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Electric200Maxim Boguk,
Верно, я поверхностно прочитал и не заметил что под Oracle. Ну не знаю, все равно как то оно не того))
правильному танцору всё что-то не того
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38674028
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какабычнаElectric200Maxim Boguk,
Верно, я поверхностно прочитал и не заметил что под Oracle. Ну не знаю, все равно как то оно не того))
правильному танцору всё что-то не того
Иди, займись чем то балабол..
...
Рейтинг: 0 / 0
Не откатывать инсерт при роллбеке функции
    #38683145
Фотография Orin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200drsm,

1. Необходимо приимущество транзакций использовать как преимущество, а не как недостаток вашей логики,
2. Зачем что то логировать если транзакция закончилась ошибкой? для этого есть exception
3. Если сильно нужно, то лучше ловить такие вещи на уровне приложения, а не костылить.
4. Сильно сомневаюсь что dblink здесь поможет. Так и вообще, зачем гвозди забивать кувалдой:?

1. к чему эти громкие фразы не понял
2. Обтыкать весь код exeption-ами конечно можно, но удобнее от этого разработка не станет.
3. Как вы предлагаете на уровне приложения ловить ошибки логики, которая реализована в хранимке?
4. судя по всему только дблинк здесь и поможет, спасибо drsm
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не откатывать инсерт при роллбеке функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]