For at omgå alle ovenstående problemer var jeg i stand til at konstruere følgende, som fungerer godt!
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 ;
Vi tager stort set det højeste id
, tag fat i log(2)
af det, hvilket giver os den tilsvarende AUTO_INCREMENT
id
. Vi tilføjer derefter 1
, og forstærk det op til 2
.
Jeg håber, at dette hjælper med at forhindre hovedpine for andre.