Abych obešel všechny výše uvedené problémy, byl jsem schopen sestavit následující, které funguje skvěle!
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 ;
V podstatě bereme nejvyšší id
, uchopte log(2)
což nám dává odpovídající AUTO_INCREMENT
id
. Poté přidáme 1
a napájejte jej až 2
.
Doufám, že to pomůže předejít bolesti hlavy pro ostatní.