sql >> Base de Datos >  >> RDS >> Mysql

(mysql, php) ¿Cómo obtener el valor del campo auto_increment antes de insertar datos?

El valor de autoincremento es generado por la propia base de datos, cuando se realiza la inserción; lo que significa que no puede obtenerlo antes de realizar la consulta de inserción real.

La solución que propuso no es la que se usa a menudo, que sería:

  • insertar algunos datos medio vacíos
  • obtener el valor de incremento automático que se ha generado
  • haz tus cálculos, usando ese valor de incremento automático
  • actualice la fila para colocar los datos nuevos o completos en su lugar, usando el incremento automático generado anteriormente en el where cláusula de la update consulta, para identificar qué fila se está actualizando.

Por supuesto, como precaución de seguridad, todas estas operaciones deben realizarse en una transacción (para garantizar un comportamiento de "todo o nada")


Como pseudocó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