sql >> Databáze >  >> RDS >> Mysql

Zvyšte pole ID tabulky pomocí bitového počítání

Abych obešel všechny výše uvedené problémy, byl jsem schopen sestavit následující, které funguje skvěle!

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 ;

V podstatě bereme nejvyšší id , uchopte log(2) což nám dává odpovídající AUTO_INCREMENT id . Poté přidáme 1 a napájejte jej až 2 .

Doufám, že to pomůže předejít bolesti hlavy pro ostatní.




  1. SQL Server:Všechna velká a malá písmena nastavte na správná malá a velká písmena

  2. Bigquery:prohledávejte více tabulek a agregujte je pomocí first_seen a last_seen

  3. Webinář:Nové funkce v PostgreSQL 11 [Následovat]

  4. SQL Server Změna názvu databáze