自動インクリメント値は、挿入が行われるときにデータベース自体によって生成されます。つまり、実際の挿入クエリを実行する前に取得することはできません。
あなたが提案した解決策は、頻繁に使用されるものではありません-それは:
- 半分空のデータを挿入する
- 生成された自動インクリメント値を取得します
- その自動インクリメント値を使用して計算を行います
- 行を更新して、新しい/完全なデータを配置します-
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