Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Rezerwowanie identyfikatorów mySQL zwiększanych automatycznie?

Jedynym sposobem wygenerowania wartości automatycznego przyrostu jest próba wstawienia. Ale możesz wycofać tę transakcję i nadal odczytać wygenerowany identyfikator. W MySQL 5.1 i nowszych domyślnym zachowaniem jest to, że wartości auto-inkrementacji nie są "zwracane" do stosu po wycofaniu.

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

Teraz możesz być pewien, że żadna inna transakcja nie będzie próbowała użyć tej wartości, więc możesz użyć jej w swoich zewnętrznych procesach, a następnie ręcznie wstawić wartość, która używa tej wartości identyfikatora (kiedy wstawisz określoną wartość identyfikatora, MySQL nie wygenerować nową wartość).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak wybrać licznik z głównego zapytania do podzapytania

  2. Jak wygenerować następny numer automatycznego przyrostu w mysql za pomocą php?

  3. czy mogę ufać, że mysql_insert_id() zwróci poprawną wartość, wielowątkowa paranoja?

  4. Sprawdź, czy kolumna istnieje w tabeli MySQL przez PHP

  5. Laravel ma wiele relacji, liczba polubień i komentarzy pod postem