Wartość autoinkrementacji jest generowana przez samą bazę danych po zakończeniu wstawiania; co oznacza, że nie możesz go uzyskać przed wykonaniem właściwego zapytania wstawiania.
Zaproponowane przez Ciebie rozwiązanie nie jest tym, które jest często używane — co oznacza:
- wstaw w połowie puste dane
- uzyskaj wygenerowaną wartość autoinkrementacji
- wykonaj swoje obliczenia, używając tej wartości autoinkrementacji
- zaktualizuj wiersz, aby umieścić nowe/pełne dane — korzystając z automatycznego przyrostu wygenerowanego wcześniej w
where
klauzulaupdate
zapytanie, aby określić, który wiersz jest aktualizowany.
Oczywiście ze względów bezpieczeństwa wszystkie te operacje muszą być wykonane w transakcji (aby zapewnić zachowanie „wszystko albo nic”)
Jako 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