Mysql
 sql >> Base de données >  >> RDS >> Mysql

Champ d'ID de table d'incrémentation avec comptage au niveau du bit

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.