sql >> Base de Datos >  >> RDS >> Mysql

Antes/después de insertar el disparador usando el campo de incremento automático

La única forma que encontré para obtener el nuevo valor de incremento no es una forma elegante. Asumí que está insertando un nuevo valor, por lo que se supone que es la identificación máxima + 1:

CREATE TRIGGER mytrigger BEFORE INSERT ON yourtable 
FOR EACH ROW BEGIN
SET NEW.thread_id = IF(
ISNULL(NEW.thread_id), 
(SELECT MAX(id) + 1 FROM yourtable), 
NEW.thread_id);
END;

Funcionó para mi caso, si es NULL obtendrá la ID máxima + 1, que será la nueva ID.