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

Insira o menor inteiro positivo único possível de forma atômica no MySql


Eu não use isso para preencher ids "ausentes", mas isso deve 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

Obter todos os id s onde id + 1 não existe (Left Join ) e insira Min(id)+1 ou 0 se não estiver disponível.