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
klauzuleupdate
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