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;

Объяснение кода листинга программы

  1. В данном коде создается триггер с именем tplog_insert_personal.
  2. Триггер срабатывает после вставки новой записи в таблицу personal.
  3. Для каждой вставленной записи выполняется блок SQL.
  4. В блоке SQL выполняется вставка записи в таблицу tp_log.
  5. В таблицу tp_log записываются следующие поля: id_personal, date, bit.
  6. Значение id_personal берется из вставленной записи и равно 45.
  7. Значение date берется из системного времени и записывается в формате NOW().
  8. Значение bit равно 1.
  9. Значения переменных заключены в одинарные кавычки, так как они являются строками.
  10. Значения переменных id_personal, date, bit записываются в таблицу tp_log без одинарных кавычек.
  11. Значения переменных разделены запятой.
  12. Запись в таблицу tp_log выполняется с использованием оператора INSERT INTO.
  13. Значения переменных берутся в скобки ().
  14. Триггер выполняется после каждого вставления записи в таблицу personal.
  15. Делимер ; используется для разделения команд в SQL запросе.
  16. Делимер ; используется для разделения выражений в SQL запросе.
  17. Делимер ; используется для разделения операторов в SQL запросе.
  18. Значения переменных id_personal, date, bit являются константами.
  19. Значения переменных id_personal, date, bit не зависят от вставленной записи.
  20. Значения переменных id_personal, date, bit не могут быть изменены вставленной записью.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5