За да заобиколя всички горепосочени проблеми, успях да създам следното, което работи чудесно!
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 ;
До голяма степен вземаме най-високия id
, вземете log(2)
от него, което ни дава съответния AUTO_INCREMENT
id
. След това добавяме 1
, и го захранвайте до 2
.
Надявам се това да помогне за предотвратяване на някои главоболия в бъдеще за други.