Результаты поиска
Вызов ошибки в триггере MySQL
Если у меня есть trigger before the update на таблице, как я могу бросить ошибку, которая предотвращает обновление на этой таблице?
Какой язык вы используете для PostgreSQL триггеров и хранимых процедур?
PostgreSQL интересен тем, что он поддерживает несколько языков для написания хранимых процедур. Какой из них вы используете, и почему?
Построение системы аудита; MS Access frontend на сервере SQL backend
Поэтому в основном я создаю приложение для своей компании, и оно NEEDS должно быть построено с использованием MS Access, и оно должно быть построено на сервере SQL.
Я составил большинство планов, но мне трудно понять, как справиться с системой аудита.
Поскольку он используется только внутри, и вы даже не сможете коснуться БД снаружи здания, мы не используем систему входа в систему, поскольку программа будет использоваться только после того, как пользователь уже вошел в нашу внутреннюю сеть через Active Directory. Зная это, мы используем систему для автоматического определения имени пользователя Active Directory и их разрешений в одной из таблиц DB, решая, что они могут или не могут делать.
Таким образом, фактическая таблица аудита будет иметь 3 столбца (этот дизайн может измениться, но для этого вопроса это не имеет значения); кто (пользователь Active Directory), когда (время addition/deletion/edit), что (что было изменено)
Мой вопрос в том, как я должен справиться с этим. В идеале я знаю, что должен использовать триггер, чтобы база данных не обновлялась без регистрации аудита, однако я не знаю, как я мог бы захватить пользователя Active Directory таким образом. Альтернативой было бы закодировать его непосредственно в источнике доступа, чтобы всякий раз, когда что-то меняется, я запускал оператор INSERT. Очевидно, что это неправильно, потому что если что-то происходит с доступом или база данных затронута чем-то другим, то она не будет регистрировать аудит.
Любые советы, примеры или статьи, которые могут мне помочь, будут очень признательны!
Триггеры базы данных
В прошлом я никогда не был поклонником использования триггеров в таблицах базы данных. Для меня они всегда представляли собой некий "magic", который должен был произойти на стороне базы данных, далеко - далеко от контроля моего кода приложения. Я также хотел ограничить объем работы, которую должен был выполнять DB, поскольку это обычно общий ресурс, и я всегда предполагал, что триггеры могут быть дорогостоящими в сценариях с высокой нагрузкой.
Тем не менее, я нашел несколько примеров, когда триггеры имели смысл использовать (по крайней мере, на мой взгляд, они имели смысл). Однако недавно я оказался в ситуации, когда мне иногда может понадобиться "bypass" спусковой крючок. Я чувствовал себя очень виноватым из-за необходимости искать способы сделать это, и я все еще думаю, что лучший дизайн базы данных облегчил бы необходимость этого обхода. К сожалению, этот DB используется несколькими приложениями, некоторые из которых поддерживаются очень несговорчивой командой разработчиков, которая кричала бы об изменениях схемы, поэтому я застрял.
Что там за общий консесус насчет триггеров? Любишь их? Ненавидеть их? Думаете, они служат какой-то цели в некоторых сценариях? Считаете ли вы, что необходимость обойти триггер означает, что вы "делаете это неправильно"?
Триггер без транзакции?
Можно ли создать триггер, который не будет в транзакции?
Я хочу обновить данные на связанном сервере с помощью триггера, но из-за проблем с брандмауэром мы не можем создать распределенную транзакцию между двумя серверами.