Create trigger - MySQL
Формулировка задачи:
Всем привет.
Написал стриггер для логирования
А он мне ошибку выдает
Где синтаксис не правильный понять не могу.
create trigger tplog_insert_personal AFTER INSERT ON personal FOR EACH ROW BEGIN insert tp_log (id_personal, `date`,`bit`) select 3,NOW(),1 end
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert tp_log (id_personal, `date`,`bit`) select 3,NOW(),1 end' at line 3 0.000 sec
Решение задачи: «Create trigger»
textual
Листинг программы
DELIMITER | CREATE TRIGGER tplog_insert_personal AFTER INSERT ON personal FOR EACH ROW BEGIN INSERT INTO `tp_log` (`id_personal`, `date`, `bit`) SELECT (45 '45', NOW(),1 '1'); END;
Объяснение кода листинга программы
- В данном коде создается триггер с именем
tplog_insert_personal. - Триггер срабатывает после вставки новой записи в таблицу
personal. - Для каждой вставленной записи выполняется блок SQL.
- В блоке SQL выполняется вставка записи в таблицу
tp_log. - В таблицу
tp_logзаписываются следующие поля:id_personal,date,bit. - Значение
id_personalберется из вставленной записи и равно 45. - Значение
dateберется из системного времени и записывается в формате NOW(). - Значение
bitравно 1. - Значения переменных заключены в одинарные кавычки, так как они являются строками.
- Значения переменных
id_personal,date,bitзаписываются в таблицуtp_logбез одинарных кавычек. - Значения переменных разделены запятой.
- Запись в таблицу
tp_logвыполняется с использованием оператораINSERT INTO. - Значения переменных берутся в скобки
(). - Триггер выполняется после каждого вставления записи в таблицу
personal. - Делимер
;используется для разделения команд в SQL запросе. - Делимер
;используется для разделения выражений в SQL запросе. - Делимер
;используется для разделения операторов в SQL запросе. - Значения переменных
id_personal,date,bitявляются константами. - Значения переменных
id_personal,date,bitне зависят от вставленной записи. - Значения переменных
id_personal,date,bitне могут быть изменены вставленной записью.