Autoinkrementvärdet genereras av databasen själv när infogningen är klar; vilket betyder att du inte kan få det innan du har gjort den faktiska infogningsfrågan.
Lösningen du föreslog är inte den som ofta används -- vilket skulle vara :
- infoga lite halvtom data
- få värdet för autoinkrement som har genererats
- gör dina beräkningar med det autoinkrementvärdet
- uppdatera raden för att placera de nya/fullständiga uppgifterna på plats – med hjälp av autoinkrementet som genererades tidigare i
where
klausul iupdate
fråga för att identifiera vilken rad som uppdateras.
Naturligtvis, som en säkerhetsåtgärd, måste alla dessa operationer göras i en transaktion (för att säkerställa ett "allt eller inget"-beteende)
Som 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