Para solucionar todos los problemas anteriores, ¡pude construir lo siguiente que funciona muy bien!
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 ;
Más o menos, tomamos el id
más alto , toma el log(2)
de ella que nos da el correspondiente AUTO_INCREMENT
id
. Luego agregamos 1
y potencia eso hasta 2
.
Espero que esto ayude a prevenir algunos dolores de cabeza en el futuro para otros.