Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL dopo l'inserimento del trigger ottiene il valore incrementato automaticamente, l'aggiornamento del valore del campo dopo l'inserimento restituisce un errore di colonna sconosciuto

Sembra un po' un lavoro da hacker, ma sono riuscito a farlo funzionare usando la funzione LAST_INSERT_ID() integrata in 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;

Anche questo funziona e sembra funzionare

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;