De autoincrement-waarde wordt gegenereerd door de database zelf, wanneer de invoeging is voltooid; wat betekent dat je het niet kunt krijgen voordat je de eigenlijke invoegquery hebt uitgevoerd.
De oplossing die u voorstelde is niet degene die vaak wordt gebruikt -- dat zou zijn:
- vul enkele halflege gegevens in
- haal de auto-incrementwaarde op die is gegenereerd
- voer je berekeningen uit met de waarde voor automatisch ophogen
- werk de rij bij om de nieuwe / volledige gegevens op hun plaats te zetten -- met behulp van de auto-increment die eerder is gegenereerd in de
where
clausule van deupdate
query, om te bepalen welke rij wordt bijgewerkt.
Als veiligheidsmaatregel moeten al deze bewerkingen natuurlijk worden uitgevoerd in een transactie (om een "alles of niets"-gedrag te garanderen)
Als pseudo-code:
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