Mysql
 sql >> Base de données >  >> RDS >> Mysql

Avant/après le déclencheur d'insertion à l'aide du champ d'incrémentation automatique

Le seul moyen que j'ai trouvé pour obtenir la nouvelle valeur d'incrémentation n'est pas une forme sophistiquée. J'ai supposé que vous insériez une nouvelle valeur, donc c'est supposé être l'identifiant maximum + 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;

Cela a fonctionné pour mon cas, si c'est NULL, il obtiendra l'ID max + 1, qui sera le nouvel identifiant.