Comment puis-je obtenir Mysql pour générer de façon incrémentielle un nombre compris entre 0 et 99999 et l'ajouter à l'enregistrement? Aussi une fois que 99999 est atteint, il commence à 0.Mysql répéter des nombres incrémentaux?
Répondre
Vous voulez AUTO_INCREMENT. Bien que la remise à zéro à 99999 puisse être un problème. Je voudrais également remettre en question votre exigence que cela fonctionne de cette façon.
Si vous avez besoin de le réinitialiser, vous pouvez créer un déclencheur:
create trigger auto_number before insert on `sometable`
begin
new.autoid = coalesce((select max(autoid)+1 from sometable),0) % 1000000
end
Essentiellement, lorsqu'un insert
se produit, cela crée juste la colonne autoid
comme le prochain grand ID. Cependant, il utilise modulo pour s'assurer que le nombre se répète à 1 000 000.
Cela ne fonctionnera pas. Vous frapperez l'autoïde max, puis max (autoïde) deviendra une constante. Ainsi, vous génèrerez à plusieurs reprises le même identifiant. Sans oublier qu'il vaudrait mieux avoir un bon index, ou ce sera/lent /. – derobert
@derobert: .... c'est ce que le PO a demandé. 0 à 99999, puis répétez-le à nouveau. – Eric
Générer un nombre toujours incrémenter (par exemple, un auto_increment standard), puis lors de la sélection des données (ou via une vue), exécutez par mod 100000:
⋮
99998 % 100000 = 99998
99999 % 100000 = 99999
100000 % 100000 = 0
100001 % 100000 = 1
⋮
Vous pouvez faire cette transparence en créant une vue de sélection:
CREATE SQL SECURITY INVOKER VIEW whatever AS
SELECT
foo, bar, baz, autoid % 100000 AS autoid, taz
FROM base_table;
Malheureusement, ce point de vue ne sera probablement pas actualisable et MySQL ne supporte pas les INSTEAD OF
déclencheurs, de sorte que vous devrez envoyer écrit à la table sous-jacente.
- 1. mysql erreur de syntaxe lorsqu'ils traitent avec des nombres négatifs
- 2. Générer une série de nombres dans MySQL
- 3. affichant des nombres aléatoires
- 4. somme des nombres formatés
- 5. Fond CSS Répéter
- 6. Formatage des nombres dans Scala?
- 7. Comment concaténer des nombres et des chaînes pour formater des nombres dans T-SQL?
- 8. MySQL ajouter, préfixer une série de nombres avec 0
- 9. Comment répéter une exécution particulière plusieurs fois
- 10. Requête MySQL: Affichage des nombres pour de nombreux groupes avec de nombreux enregistrements
- 11. Quartz répéter l'exécution 5 fois par jour
- 12. C++ arrondi des nombres loin de zéro
- 13. Générer des nombres premiers VRAIMENT grands
- 14. Jparsec - analyse syntaxique des nombres simples
- 15. Gestion des grands nombres dans le code
- 16. Regrouper des nombres pour un histogramme
- 17. collecter des nombres et les imprimer
- 18. Comment formater des nombres en JavaScript?
- 19. chiffres ronds PHP, ajouter des nombres décimaux
- 20. Répéter une commande Unix en Java
- 21. Comment répéter l'animation en utilisant CATransition?
- 22. Appeler le DescendantNodes sans répéter chaque noeud
- 23. Silverlight: Faire une partie d'un storyboard répéter
- 24. sql partiton par Suppress répéter les valeurs
- 25. Utilisation de plusieurs jointures à gauche pour calculer des moyennes et des nombres
- 26. Tri des chaînes contenant des nombres d'une manière conviviale
- 27. Un générateur de nombres aléatoires qui peut obtenir des nombres différents en <une seconde
- 28. Comparaisons de nombres Java
- 29. Java Génériques et nombres
- 30. Python - MYSQL - Sélection des zéros en tête
Je ne pense pas qu'il existe un moyen de réinitialiser 'auto_increment' sauf si vous supprimez des lignes, tronquez la table ou recréer la colonne. – Eric