Om alle bovenstaande problemen te omzeilen, kon ik het volgende maken, wat geweldig werkt!
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 ;
Vrijwel, we nemen de hoogste id
, pak het log(2)
ervan die ons de overeenkomstige AUTO_INCREMENT
. geeft id
. We voegen dan 1
. toe , en verhoog dat tot 2
.
Ik hoop dat dit helpt om hoofdpijn voor anderen te voorkomen.