sql >> Database >  >> RDS >> Mysql

Voeg het laagst mogelijke unieke positieve gehele getal in op een atomaire manier in MySql

Ik zou niet gebruik dit om "ontbrekende" ID's op te vullen, maar dit zou moeten werken:

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

Krijg alle id s waar id + 1 bestaat niet (Left Join ), en voeg Min(id)+1 . in of 0 als niet beschikbaar is.




  1. Een datawarehouse runnen op PostgreSQL

  2. 3 manieren om NULL te vervangen door "N/A" in SQLite

  3. codeigniter actieve record geneste query

  4. Hoe Microsoft SQL Server-fout 926 te repareren? - Opgelost