La Web del Programador: Comunidad de Programadores
 
    Pregunta:  64308 - INSERT TOP EN MYSQL
Autor:  Sebastián Rebolledo
Saludos, estoy trabajando con PHP y Mysql y necesito realizar un procedimiento almacenado para insertar un registro con dos campos un id y un nombre, el id debe ser el ultimo numero ingresado más 1, casi como autoincremento, pero eso no me sirve, porque si el último número es 15 y lo borro, al ingresar otro registro tendrá valor 16 y me deja un vacio.

lo que necesito es meter en un insert (o en una variable dentro del procedimiento) alguna de estas consultas:

select max (id_marca)+1 from marcas;
select (id_marca+1) as m from marcas order by m desc limit 0,1;

he revizado en varios sitios y no han encontrado la solución, alguien sabe como se puede hacer?

  Respuesta:  Jose Garcia
A ver si puedo ayudarte...

Si lo haces con IDs es imposible porque si tenes un IDENTITY 1,1 y va contando por el 15 y borras hasta el 10, tu numero mas alto es el 9 y el siguiente es el 10.

Agrega un campo nuevo DATETIME y por cada inserción guardale un NOW(), luego:
ORDER BY fechaOrd DESC para tener la fecha más reciente y obtener LIMIT 1; en caso de querer un solo registro... espero que te sirva la idea :) Saludos!!