Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Incrementar o campo de ID da tabela com contagem bit a bit


Para contornar todos os problemas acima, consegui construir o seguinte que funciona muito bem!
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 ;

Praticamente, pegamos o id mais alto , pegue o log(2) dele que nos dá o correspondente AUTO_INCREMENT id . Em seguida, adicionamos 1 , e aumente isso até 2 .

Espero que isso ajude a evitar alguma dor de cabeça no caminho para os outros.