Mysql
 sql >> база данни >  >> RDS >> Mysql

Резервиране на mySQL автоматично увеличени идентификатори?

Единственият начин да генерирате стойност за автоматично увеличение е да опитате вмъкването. Но можете да върнете обратно тази транзакция и все пак да прочетете генерирания идентификатор. В MySQL 5.1 и по-нови, поведението по подразбиране е, че стойностите за автоматично увеличение не се „връщат“ в стека, когато се върнете назад.

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

Сега можете да сте сигурни, че никоя друга транзакция няма да се опита да използва тази стойност, така че можете да я използвате във вашите външни процеси и след това накрая да вмъкнете стойност ръчно, която използва тази стойност на идентификатора (когато вмъкнете конкретна стойност на идентификатор, MySQL не генерира нова стойност).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на MySQL:MySQL/MariaDB индекси

  2. Колона с по-висока мощност първа в индекс, когато включва диапазон?

  3. Как да се свържете с база данни с помощта на Sequel Pro

  4. Как да настроите правилната часова зона на MySQL JDBC в конфигурацията на Spring Boot

  5. Решение за вмъкване на заключване на намерение в MySQL