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

(mysql, php) Jak získat hodnotu pole auto_increment před vložením dat?

Hodnota autoincrementu je generována samotnou databází, když je vložení dokončeno; což znamená, že jej nemůžete získat před provedením skutečného dotazu na vložení.

Řešení, které jste navrhli, není to, které se často používá – což by bylo:

  • vložte poloprázdná data
  • získáte vygenerovanou hodnotu automatického přírůstku
  • proveďte výpočty pomocí této hodnoty automatického přírůstku
  • aktualizujte řádek, aby byla zavedena nová/úplná data – pomocí automatického přírůstku vygenerovaného dříve v where klauzule update dotaz, abyste zjistili, který řádek je aktualizován.

Samozřejmě jako bezpečnostní opatření musí být všechny tyto operace provedeny v rámci transakce (aby bylo zajištěno chování „vše nebo nic“)


Jako pseudokód:

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. Proč je trvání pro opakující se událost v Androidu NULL?

  2. Jak importovat data z textového souboru do databáze mysql

  3. Seznam všech dočasných tabulek v SQLite

  4. Funkce TAN() v Oracle