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

Rezervace automaticky navýšených ID mySQL?

Jediným způsobem, jak vygenerovat hodnotu automatického přírůstku, je pokus o vložení. Ale můžete tuto transakci vrátit zpět a stále číst vygenerované ID. V MySQL 5.1 a novějších je výchozím chováním to, že hodnoty automatického přírůstku nejsou „vráceny“ do zásobníku, když se vrátíte zpět.

START TRANSACTION;
INSERT INTO mytable () VALUES ();
ROLLBACK;
SELECT LAST_INSERT_ID() INTO @my_ai_value;

Nyní si můžete být jisti, že se žádná jiná transakce nepokusí použít tuto hodnotu, takže ji můžete použít ve svých externích procesech a nakonec ručně vložit hodnotu, která používá tuto hodnotu id (když vložíte konkrétní hodnotu id, MySQL nebude vygenerovat novou hodnotu).



  1. Existuje způsob, jak se zeptat, zda pole pole obsahuje určitou hodnotu v Doctrine2?

  2. PDO:Server MySQL odešel

  3. Operátoři sady Oracle

  4. MariaDB – MySQL – Zobrazení všech dostupných a podporovaných motorů