Autoincrement-værdien genereres af databasen selv, når indsættelsen er udført; hvilket betyder, at du ikke kan få det, før du udfører selve indsættelsesforespørgslen.
Den løsning, du foreslog, er ikke den, der ofte bruges -- hvilket ville være :
- indsæt nogle halvtomme data
- hent den automatiske stigningsværdi, der er blevet genereret
- foretag dine beregninger ved at bruge denne autoincrement-værdi
- opdater rækken for at sætte de nye/fulde data på plads -- ved hjælp af autoincrement genereret tidligere i
where
klausul iupdate
forespørgsel for at identificere, hvilken række der opdateres.
Som en sikkerhedsforanstaltning skal alle disse handlinger naturligvis udføres i en transaktion (for at sikre en "alt eller intet"-adfærd)
Som pseudokode :
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