Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erhöhen Sie das Tabellen-ID-Feld mit bitweiser Zählung

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.