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.