Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL após o gatilho de inserção obtém valor incrementado automaticamente, atualiza o valor do campo após a inserção fornece erro de coluna desconhecido


Isso parece um trabalho de hack, mas consegui fazê-lo funcionar usando a função LAST_INSERT_ID() incorporada ao 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;

Isso também funciona e 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;