Pour contourner tous les problèmes ci-dessus, j'ai pu construire ce qui suit qui fonctionne très bien !
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 ;
À peu près, nous prenons le id
le plus élevé , récupérez le log(2)
de celui-ci qui nous donne le AUTO_INCREMENT
correspondant id
. Nous ajoutons ensuite 1
, et alimentez-le jusqu'à 2
.
J'espère que cela aidera à prévenir certains maux de tête pour les autres.