Um alle oben genannten Probleme zu umgehen, konnte ich Folgendes konstruieren, was großartig funktioniert!
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 ;
Wir nehmen so ziemlich die höchste id , holen Sie sich das log(2) davon, was uns den entsprechenden AUTO_INCREMENT gibt id . Wir fügen dann 1 hinzu , und erhöhe das auf 2 .
Ich hoffe, dass dies dazu beiträgt, anderen später einige Kopfschmerzen zu ersparen.