Как запрограммировать триггер MySQL для вставки строки в другую таблицу?

Я ищу, чтобы создать триггер MySQL на таблице. По сути, я создаю stream активности и должен регистрировать действия пользователей. Когда пользователь делает комментарий, я хочу запустить триггер базы данных на этой таблице и:

  1. Возьмите идентификатор последней вставленной строки (идентификатор строки комментария).
  2. выполните INSERT в таблицу действий, используя данные из последней вставленной строки.

Я по существу повторю этот триггер для удаления комментариев.

Вопросы, которые у меня были:

  1. LAST_INSERT_ID () лучший способ захватить идентификатор?
  2. Как правильно хранить данные из последней вставленной строки комментариев для использования в инструкции «INSERT into activities»?
  3. Должен ли я использовать комбинацию хранимых процедур, а также триггер?
  4. Как бы выглядела основная структура триггера?

Благодаря! Прошло несколько лет с тех пор, как я затронул все, что связано с триггерами, процедурами и функциями DB.

drop table if exists comments; create table comments ( comment_id int unsigned not null auto_increment primary key, user_id int unsigned not null ) engine=innodb; drop table if exists activities; create table activities ( activity_id int unsigned not null auto_increment primary key, comment_id int unsigned not null, user_id int unsigned not null ) engine=innodb; delimiter # create trigger comments_after_ins_trig after insert on comments for each row begin insert into activities (comment_id, user_id) values (new.comment_id, new.user_id); end# delimiter ; insert into comments (user_id) values (1),(2); select * from comments; select * from activities; 

Редактировать:

 mysql> \. d:\foo.sql Database changed Query OK, 0 rows affected (0.10 sec) Query OK, 0 rows affected (0.30 sec) Query OK, 0 rows affected (0.11 sec) Query OK, 0 rows affected (0.35 sec) Query OK, 0 rows affected (0.07 sec) Query OK, 2 rows affected (0.03 sec) Records: 2 Duplicates: 0 Warnings: 0 +------------+---------+ | comment_id | user_id | +------------+---------+ | 1 | 1 | | 2 | 2 | +------------+---------+ 2 rows in set (0.00 sec) +-------------+------------+---------+ | activity_id | comment_id | user_id | +-------------+------------+---------+ | 1 | 1 | 1 | | 2 | 2 | 2 | +-------------+------------+---------+ 2 rows in set (0.00 sec) 
  • Оптимизация поиска MySQL с использованием «похожих» и подстановочных знаков
  • GROUP_CONCAT с лимитом
  • Может ли Hibernate работать с синтаксисом «ON DUPLICATE KEY UPDATE» MySQL?
  • Спящий режим: создание таблиц Mysql InnoDB вместо MyISAM
  • Как найти, какая транзакция вызывает состояние «Ожидание таблицы метаданных»?
  • MySql SELECT для разных столбцов?
  • URL-адрес JDBC для конфигурации MySQL для использования кодировки символов utf8
  • Каков наилучший способ удаления старых строк из MySQL на скользящей основе?
  • Вычислить разницу во времени между двумя строками
  • mySQL возвращает все строки, когда поле = 0
  • Как определить, сколько места на диске занимает определенная таблица MySQL?
  • Давайте будем гением компьютера.