Стойността за автоматично нарастване се генерира от самата база данни, когато вмъкването е извършено; което означава, че не можете да го получите, преди да извършите действителната заявка за вмъкване.
Решението, което предложихте, не е това, което често се използва - което би било:
- вмъкнете някои полупразни данни
- вземете генерираната стойност за автоматично увеличение
- направете вашите изчисления, като използвате тази стойност за автоматично увеличение
- актуализирайте реда, за да поставите новите / пълните данни на място - като използвате автоматичното увеличение, генерирано по-рано в
where
клауза наupdate
заявка, за да определите кой ред се актуализира.
Разбира се, като предпазна мярка за сигурност, всички тези операции трябва да се извършват в транзакция (за да се осигури поведение „всичко или нищо“)
Като псевдокод :
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