Задавайте вопросы, мы ответим
Вы не зашли.
Добрый вечер.
Задача такая - 2 триггера: after insert и after update
при добавлении записи не нужно указывать id - он должен генерироваться автоматически в БД
при добавлении записи не нужно указывать mod_date - это поле должно заполняться триггером
Структура БД:
Неактивен
Внутри триггера запрещены запросы на обновление той де таблицы, к которой привязан триггер. Вашу задачу нужно решать иначе - триггерами before insert и before update, изменяя значение new.id на NULL
Неактивен
rgbeast написал:
Внутри триггера запрещены запросы на обновление той де таблицы, к которой привязан триггер. Вашу задачу нужно решать иначе - триггерами before insert и before update, изменяя значение new.id на NULL
SET new.id=NULL, new.mod_date=NULL;
А если крайне важно использовать событие именно After в обоих случаях, то что нужно поменять в коде, чтобы все отрабатывало успешно?
Я руководствовался примером их этой ссылки - Пример, раздел - The Pretty Easy Trigger: Logging and Auditing, и там срабатывает запрос внутри триггера...
Отредактированно uNsLide (15.07.2011 21:49:53)
Неактивен
В примере по ссылке запрос обращается к другой таблице, а не к той же самой. Запрет очень легко понять - ваш триггер AFTER INSERT делает еще одну вставку в ту же таблицу, то есть должен снова вызвать триггер AFTER INSERT (себя же). Если такое поведение разрешить, рекурсия будет бесконечной.
Триггеры AFTER уже не могут изменить вставляемые данные, так как вызываются после завершения вставки. Что бы вы ни делали в триггере, строка уже вставлена в таблицу.
Неактивен