TRIGGER
Started By Pelotka, сен 25 2008 15:31
6 ответов в этой теме
#1
Отправлено 25 сентября 2008 - 15:31
Всем добрый вечер!
сопственно вот код:
CREATE TRIGGER auto1 AFTER INSERT ON Linnad FOR EACH ROW INSERT INTO logitable (auto_id, toiming, aeg, mark, aasta, linna_id, kasutaja) VALUES (( select auto_id from autod ORDER BY auto_id limit 1), [], curdate(), (SELECT mark FROM autod ORDER BY auto_id DESC limit 1), (SELECT aasta FROM autod ORDER BY auto_id DESC limit 1;), (SELECT reg_piirkond FROM autod ORDER BY auto_id DESC limit 1), (SELECT USER()));
Цель такая:
Зделать Триггер, каторый проверяет INSERT, DELETE, UPDATE и пишет какое действие было зделано в это место , [].
На данный момент вижу вариантом создать 3 разных Триггера, но это резервный план Может кто знает, как зделать это в одном Триггере?
Буду очень признателен за любые ответы и помощь в поисках решения проблемы!
сопственно вот код:
CREATE TRIGGER auto1 AFTER INSERT ON Linnad FOR EACH ROW INSERT INTO logitable (auto_id, toiming, aeg, mark, aasta, linna_id, kasutaja) VALUES (( select auto_id from autod ORDER BY auto_id limit 1), [], curdate(), (SELECT mark FROM autod ORDER BY auto_id DESC limit 1), (SELECT aasta FROM autod ORDER BY auto_id DESC limit 1;), (SELECT reg_piirkond FROM autod ORDER BY auto_id DESC limit 1), (SELECT USER()));
Цель такая:
Зделать Триггер, каторый проверяет INSERT, DELETE, UPDATE и пишет какое действие было зделано в это место , [].
На данный момент вижу вариантом создать 3 разных Триггера, но это резервный план Может кто знает, как зделать это в одном Триггере?
Буду очень признателен за любые ответы и помощь в поисках решения проблемы!
#2
Отправлено 25 сентября 2008 - 15:49
Если не ошибаюсь, нельзя сделать на одном. Выдели основной кусок кода в хранимую процедуру а из соответствующих тиггеров вызывай передавая в качестве параметра - INSERT, DELETE, UPDATE.
upd:
Хм, правда данные тоже придется передавать.
upd:
Хм, правда данные тоже придется передавать.
Сообщение изменено: Voland (25 сентября 2008 - 15:52 )
#5
Отправлено 25 сентября 2008 - 16:13
судя по этому
http://dev.mysql.com...te-trigger.html
в mysql на один триггер нельзя повесить сразу 2 евента ...
http://dev.mysql.com...te-trigger.html
в mysql на один триггер нельзя повесить сразу 2 евента ...
#7
Отправлено 22 октября 2008 - 09:42
1.Необходимо создать таблицу, которая должна иметь ту же структуру, что и исходная таблица и еще поля: имя пользователя, дата время выполнения изменения записи, название операции.
2. Для этого используется понятие Наследование (INHERITS).
3. Создать триггерную функцию, а затем и сам триггер.
P.S - для достижения лучших результатов желательно сделать проверку на корректный ввод данных.
2. Для этого используется понятие Наследование (INHERITS).
3. Создать триггерную функцию, а затем и сам триггер.
P.S - для достижения лучших результатов желательно сделать проверку на корректный ввод данных.