Per aggirare tutti i problemi di cui sopra, sono stato in grado di costruire quanto segue che funziona alla grande!
DELIMITER $$
CREATE TRIGGER testbitcompatid BEFORE INSERT ON Table
FOR EACH ROW
BEGIN
SET @LAST_ROW = (SELECT MAX(id) FROM Table);
SET NEW.id = CASE WHEN @LAST_ROW IS NULL THEN 1 ELSE @LAST_ROW * 2 END;
END;
$$
DELIMITER ;
Praticamente, prendiamo l'id
più alto , prendi il log(2)
di esso che ci fornisce il corrispondente AUTO_INCREMENT
id
. Quindi aggiungiamo 1
e accendilo fino a 2
.
Spero che questo aiuti a prevenire qualche mal di testa lungo la strada per gli altri.