Доброго времени суток. Как-то раз при работе с базой данных Postgres возникла потребность запретить удаление каких-либо данных из таблицы заказов. Конечно ограничения constraint не позволят это сделать, если есть внешние ключи к другой таблице. Однако некоторые разработчики баз данных могут не использовать foreign keys, утверждая, что внешние ключи могут замедлять работу с таблицами.
Чтобы запретить коду с правами на удаление из таблицы удаление данных можно использовать 2 метода:
1) Не давать удалять с помощью триггера
2) Не позволять удалять с помощью правила.
Я выбрал последний вариант, поскольку триггер писать дольше.
Вот пример правила, запрещающего удаление строк из таблицы заказов:
CREATE RULE orders_rl AS ON DELETE TO public.ordersDO INSTEAD NOTHING;
Комментариев нет :
Отправить комментарий