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

MySQL après l'insertion du déclencheur obtient une valeur automatiquement augmentée, la valeur du champ de mise à jour après l'insertion donne une erreur de colonne inconnue

Cela ressemble un peu à un travail de piratage, mais j'ai réussi à le faire fonctionner en utilisant la fonction LAST_INSERT_ID() intégrée à MySQL.

CREATE TRIGGER `order_guide_insert_trigger`
BEFORE INSERT ON `order_guide`
FOR EACH ROW 
BEGIN
    IF NEW.Sort_Placement IS NULL THEN
        SET NEW.Sort_Placement = LAST_INSERT_ID() + 1;
    END IF;
END;

Cela fonctionne aussi et semble fonctionner

CREATE TRIGGER `order_guide_insert_trigger`
BEFORE INSERT ON `order_guide`
FOR EACH ROW 
BEGIN
    IF NEW.Sort_Placement IS NULL THEN
        SET NEW.Sort_Placement = (SELECT ID FROM order_Guide ORDER BY id DESC LIMIT 1) + 1;
    END IF;
END;