sql >> Database teknologi >  >> RDS >> Mysql

Forøg tabel-id-felt med bitvis optælling

For at omgå alle ovenstående problemer var jeg i stand til at konstruere følgende, som fungerer godt!

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 ;

Vi tager stort set det højeste id , tag fat i log(2) af det, hvilket giver os den tilsvarende AUTO_INCREMENT id . Vi tilføjer derefter 1 , og forstærk det op til 2 .

Jeg håber, at dette hjælper med at forhindre hovedpine for andre.




  1. Opdater flere rækker i en enkelt MySQL-forespørgsel

  2. Hvorfor understøtter NHibernate ikke batching på MySql

  3. Snow Leopard + Ruby 1.9.1 + MySQL Gem =Kæmpe problemer

  4. At redigere DataGridview og også gemme den i en databasetabel ved hjælp af c#