Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

(mysql, php) Como obter o valor do campo auto_increment antes de inserir dados?


O valor de autoincremento é gerado pelo próprio banco de dados, quando a inserção é feita; o que significa que você não pode obtê-lo antes de fazer a consulta de inserção real.

A solução que você propôs não é a que costuma ser usada - que seria:
  • insira alguns dados meio vazios
  • obtenha o valor de incremento automático que foi gerado
  • faça seus cálculos usando esse valor de incremento automático
  • atualize a linha para colocar os dados novos/completos no lugar -- usando o incremento automático gerado anteriormente no where cláusula da update consulta, para identificar qual linha está sendo atualizada.

É claro que, por precaução de segurança, todas essas operações devem ser feitas em uma transação (para garantir um comportamento "tudo ou nada")


Como pseudo-código:
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