w3schools update trigger tabla para otra insertar ejemplos ejemplo delete datos before and mysql triggers lastinsertid procedures

update - trigger para insertar datos en otra tabla mysql



¿Cómo programar un disparador de MySQL para insertar una fila en otra tabla? (1)

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;

Editar:

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)

Estoy buscando crear un disparador de MySQL en una tabla. Básicamente, estoy creando una secuencia de actividad y necesito registrar acciones de los usuarios. Cuando un usuario hace un comentario, quiero que se active un disparador de base de datos en esa tabla y:

  1. Toma el ID de la última fila insertada (la identificación de la fila de comentarios).
  2. realice una INSERCIÓN en una tabla de actividades, usando datos de la última fila insertada.

Básicamente replicaré este disparador para eliminar comentarios.

Preguntas que tuve:

  1. ¿Es LAST_INSERT_ID () la mejor forma de obtener el ID?
  2. ¿Cómo almaceno correctamente los datos de la última fila de comentarios insertados para utilizarlos en mi declaración "INSERTAR en actividades"?
  3. ¿Debo utilizar una combinación de procedimientos almacenados y el disparador?
  4. ¿Cómo sería la estructura básica del gatillo?

¡Gracias! Han pasado algunos años desde que toqué algo relacionado con desencadenantes DB, procedimientos y funciones.