powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите разобраться чем грозит RETURN NULL;
8 сообщений из 8, страница 1 из 1
Помогите разобраться чем грозит RETURN NULL;
    #40074978
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Помогите разобраться чем грозит RETURN NULL в триггерной функции.


Мне надо запретить изменения в таблице, вставку, изменение и удаления (RULE не предлагать).


обычно смотрю используется

RETURN OLD;

или RETURN NEW;


но с удалением возникли проблемы, сделал RETURN NULL;

Триггерная функция одна на вставку, изменение и удаления.


Протестировал - все работает, т.е. запрещает изменения в табличке.

Скажите. чем RETURN NULL; может грозить?
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40074986
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sstatistic,

raise exception обычно делается.

А return null делает то что описано в документации: https://www.postgresql.org/docs/current/plpgsql-trigger.html
Row-level triggers fired BEFORE can return null to signal the trigger manager to skip the rest of the operation for this row (i.e., subsequent triggers are not fired, and the INSERT/UPDATE/DELETE does not occur for this row).
...
The return value of a row-level trigger fired AFTER or a statement-level trigger fired BEFORE or AFTER is always ignored
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40075001
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sstatistic
Приветствую.

Помогите разобраться чем грозит RETURN NULL в триггерной функции.


Мне надо запретить изменения в таблице, вставку, изменение и удаления (RULE не предлагать).



А не проще на уровне прав доступа к таблице всё это сделать?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40075075
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij
sstatistic,

raise exception обычно делается.

А return null делает то что описано в документации: https://www.postgresql.org/docs/current/plpgsql-trigger.html
Row-level triggers fired BEFORE can return null to signal the trigger manager to skip the rest of the operation for this row (i.e., subsequent triggers are not fired, and the INSERT/UPDATE/DELETE does not occur for this row).
...
The return value of a row-level trigger fired AFTER or a statement-level trigger fired BEFORE or AFTER is always ignored


Спасибо.

Получается конкретно для этого случая, NULL подходит.

А оказалось кроме олд и нью еще куча всего есть, TG_TABLE_NAME, например.

Благодарю за ссылочку.
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40075076
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
sstatistic
Приветствую.

Помогите разобраться чем грозит RETURN NULL в триггерной функции.


Мне надо запретить изменения в таблице, вставку, изменение и удаления (RULE не предлагать).



А не проще на уровне прав доступа к таблице всё это сделать?




Это было бы сильно просто.

Там просто логика завязана, что-то можно, что-то нельзя, в одной таблице, поэтому просто правами досутпа тут не получится.
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40075106
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sstatistic
Maxim Boguk
пропущено...


А не проще на уровне прав доступа к таблице всё это сделать?




Это было бы сильно просто.

Там просто логика завязана, что-то можно, что-то нельзя, в одной таблице, поэтому просто правами досутпа тут не получится.


return null или raise exception
зависит от того какое поведение вам требуется внутри транзакции если выполняется запрещенная операция...
тупо пропустить запрещенную операцию и продолжить транзакцию - return null;
если же надо дать ошибку и откатить всю транзакцию - тогда raise exception


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40075164
sstatistic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
sstatistic
пропущено...


Это было бы сильно просто.

Там просто логика завязана, что-то можно, что-то нельзя, в одной таблице, поэтому просто правами досутпа тут не получится.


return null или raise exception
зависит от того какое поведение вам требуется внутри транзакции если выполняется запрещенная операция...
тупо пропустить запрещенную операцию и продолжить транзакцию - return null;
если же надо дать ошибку и откатить всю транзакцию - тогда raise exception


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru




Вас понял.

Да, должно быть полностью незаметно ни для приложения ни для пользователя.

null то что надо.
...
Рейтинг: 0 / 0
Помогите разобраться чем грозит RETURN NULL;
    #40075418
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sstatistic
должно быть полностью незаметно ни для приложения ни для пользователя.

Часовую бомбу закладываете на случай увольнения или свинью для поддержки, которую задолбают вопросами "почему мои данные не сохранились"?..
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите разобраться чем грозит RETURN NULL;
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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