Para contornar todos os problemas acima, consegui construir o seguinte que funciona muito bem!
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, pegamos o
id
mais alto , pegue o log(2)
dele que nos dá o correspondente AUTO_INCREMENT
id
. Em seguida, adicionamos 1
, e aumente isso até 2
. Espero que isso ajude a evitar alguma dor de cabeça no caminho para os outros.