Dites que j'ai une table avec un seul champ entier positif. J'ai actuellement des rangées avec des identifiants de [1, 2, 3, 4, 5, 8, 12, 35]. Y at-il une requête d'insertion que je pourrais écrire qui attribuerait le champ id à l'entier positif unique le plus bas (dans ce cas 6)? Il faudrait le faire de manière atomique, donc il n'y a pas la possibilité que des insertions simultanées s'annulent ou échouent.Insérer le nombre entier positve le plus bas possible de manière atomique dans MySql
2
A
Répondre
1
Je pas Utilisez cette option pour remplir "manquants" ids, mais cela devrait fonctionner:
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
Obtenez tous les id
s où id + 1
n'existe pas (Left Join
) et insérez Min(id)+1
ou 0
si non disponible.
Questions connexes
- 1. Python: trouver le plus bas entier
- 2. MySql simple - Obtenir le plus grand nombre dans le tableau
- 3. identifier le plus petit nombre entier et le nombre de fois où il a été entré
- 4. Appel d'un service Web de manière atomique?
- 5. Manière plus efficace de générer un nombre entier dans un assemblage pur
- 6. trunc le nombre entier de nombre réel en utilisant matlab
- 7. Quel est l'ID de processus le plus bas possible pour un processus Linux?
- 8. Trouvez le nombre entier le plus élevé dans une liste générique en utilisant C#?
- 9. Ordre par nombre entier avec des champs vides en bas
- 10. Étant donné un nombre décimal, recherchez le plus petit multiplicateur entier qui donne un résultat entier
- 11. Fixer le nombre de longueur dans mysql
- 12. Passant de manière inattendue un nombre entier par référence?
- 13. PHP plus grand entier possible Constante
- 14. Sélectionnez Correspond commençant le nombre de chaînes sur entier
- 15. Analyse d'une table mysql depuis le bas
- 16. le plus bas parent commun dans le tableau SQL récursif
- 17. Le moyen le plus rapide de compter le nombre de transitions binaires dans un entier non signé
- 18. mysql rejoindre le nombre
- 19. Comment compter le nombre de bits zéro dans un entier?
- 20. problème quand insérer « \\ » dans le tableau MySQL
- 21. MySQL Insérer le double clé
- 22. Une manière plus facile ou mieux de le faire?
- 23. Ancêtre commun le plus bas (graphique boost)
- 24. Comment supprimer le premier nombre d'un nombre entier?
- 25. Filtrage en entier le plus élevé d'un tableau de liens
- 26. Arrondir la valeur au nombre entier le plus proche dans SQL MISE À JOUR
- 27. Obtenez le plus d'utilisateurs actifs par le nombre de commentaires
- 28. Besoin le plus bas prix dans chaque région dans une requête mysql
- 29. PHP trouver le nombre le plus proche
- 30. String.Format() fraction nombre entier
Puis-je vous demander pourquoi vous devez faire cela? Vous ne pensez pas à réutiliser les ID des éléments supprimés êtes-vous? –
Ceci est un cas simplifié, mais il est analogue à 20 étant le numéro préféré de quelqu'un, donc ils veulent l'utiliser comme leur id. Je voudrais utiliser 1-19 au lieu de l'auto-incrémentation à 21 prochaines. –