För att komma runt alla problem ovan kunde jag konstruera följande som fungerar utmärkt!
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 ;
I stort sett tar vi det högsta id , ta tag i log(2) av den vilket ger oss motsvarande AUTO_INCREMENT id . Vi lägger sedan till 1 , och driv det upp till 2 .
Jag hoppas att detta hjälper till att förhindra en del huvudvärk för andra.