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

(mysql, php) Jak uzyskać wartość pola auto_increment przed wstawieniem danych?

Wartość autoinkrementacji jest generowana przez samą bazę danych po zakończeniu wstawiania; co oznacza, że ​​nie możesz go uzyskać przed wykonaniem właściwego zapytania wstawiania.

Zaproponowane przez Ciebie rozwiązanie nie jest tym, które jest często używane — co oznacza:

  • wstaw w połowie puste dane
  • uzyskaj wygenerowaną wartość autoinkrementacji
  • wykonaj swoje obliczenia, używając tej wartości autoinkrementacji
  • zaktualizuj wiersz, aby umieścić nowe/pełne dane — korzystając z automatycznego przyrostu wygenerowanego wcześniej w where klauzula update zapytanie, aby określić, który wiersz jest aktualizowany.

Oczywiście ze względów bezpieczeństwa wszystkie te operacje muszą być wykonane w transakcji (aby zapewnić zachowanie „wszystko albo nic”)


Jako pseudokod :

begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Inżynieria wsteczna bazy danych MySQL przy użyciu MySQL Workbench

  2. Nielegalna mieszanka zestawień Błąd MySQL

  3. 15 przydatnych wskazówek dotyczących dostrajania i optymalizacji wydajności MySQL/MariaDB

  4. Jak wykonać procedurę składowaną w środowisku roboczym MySQL?

  5. Przywracanie usuniętego użytkownika „root” i hasła do MySQL