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

MySQL después de insertar el activador obtiene un valor incrementado automáticamente, actualizar el valor del campo después de insertar da un error de columna desconocido

Esto parece un trabajo de piratería, pero pude hacerlo funcionar usando la función LAST_INSERT_ID() integrada en 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;

Esto también funciona y parece funcionar

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;