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

Inserte el entero positivo único más bajo posible de forma atómica en MySql

Yo no use esto para completar las identificaciones "faltantes", pero esto debería funcionar:

Insert Into t (id)
  Select Coalesce( Min(t.id) + 1, 0 )
  From t
  Left Join t As t2 On ( t2.id = t.id + 1 )
  Where t2.id Is Null

Obtener todos los id s donde id + 1 no existe (Left Join ) e inserte Min(id)+1 o 0 si no está disponible.