Правда ли, что я не могу редактировать триггер MySQL, я должен сбросить его и создать новый? - PullRequest
5 голосов
/ 05 апреля 2009

Правда ли, что я не могу редактировать триггер MySQL, я должен сбросить его и создать новый?

Кроме того, будучи относительным новичком в отношении триггеров, создается впечатление, что они кажутся склонными к созданию «ошибочных» данных. Например, мне может потребоваться запуск триггера (вставка данных в другую таблицу) после одного конкретного типа запроса на обновление, но не других.

Любые советы здесь с благодарностью получены!

Ответы [ 2 ]

6 голосов
/ 05 апреля 2009

Редактировать: Да, это правда, что версии 5.n и 6.n MySQL 5 и 6 реализуют CREATE TRIGGER и DROP TRIGGER и ничего больше. Согласно этому куску документации Postgres , в SQL 92 даже нет CREATE TRIGGER, так что считайте себя счастливым иметь TRIGGER вообще: -)

Документация плагина Visual Studio MySQL имеет:

Чтобы изменить существующий триггер, дважды щелкните по узлу триггера, который вы хотите изменить, или щелкните правой кнопкой мыши по этому узлу и выберите команду «Изменить триггер» в контекстном меню. Любая из команд открывает редактор SQL.

... который, кажется, делает то, что вы хотите. Я предполагаю, что это сахар GUI и за кулисами вы получаете DROP CREATE.

Что касается триггера для некоторых UPDATE с, а не для других, в SQL есть ровно один UPDATE на таблицу. Поместите предложение IF в начало вашего триггера UPDATE, чтобы ваша логика - что бы вы ни делали в некоторых из ваших UPDATE s - выполняется только тогда, когда вы считаете, что это уместно.

2 голосов
/ 06 апреля 2009

В MySQL есть REPLACE TRIGGER, верно?

Как знакомая. Это проблема? Если вас беспокоит, что запросы выполняются между DROP и CREATE, вы всегда можете заблокировать таблицу заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...