Wie kann ich Mysql schrittweise eine Zahl zwischen 0 bis 99999 generieren und es dem Datensatz hinzufügen? Auch wenn 99999 erreicht ist, beginnt es wieder bei 0.Mysql Wiederholungszahlen wiederholen?
Antwort
Sie wollen AUTO_INCREMENT.
Obwohl das Zurücksetzen auf 99999 möglicherweise ein Problem sein kann. Ich würde auch Ihre Anforderung in Frage stellen, dass es so funktioniert.
Wenn Sie es zurücksetzen müssen, können Sie einen Trigger erstellen:
create trigger auto_number before insert on `sometable`
begin
new.autoid = coalesce((select max(autoid)+1 from sometable),0) % 1000000
end
Wesentlichen, wenn ein insert
auftritt, dies setzt lediglich die autoid
Spalte als die nächstgrößere ID. Es verwendet jedoch Modulo, um sicherzustellen, dass sich die Zahl bei 1.000.000 wiederholt.
Dies wird nicht funktionieren. Sie werden das maximale Autoid treffen, und dann wird Max (Autoid) eine Konstante werden. Sie werden also wiederholt die gleiche ID generieren. Ganz zu schweigen davon, dass es besser ein schöner Index sein sollte, oder das wird/langsam/sein. – derobert
@derobert: .... das ist, was das OP gefragt hat. 0 bis 99999, dann wiederholen Sie alles noch einmal. – Eric
Generieren eine immer Inkrementieren Anzahl (beispielsweise ein Standard-auto_increment) und dann, wenn die Daten (oder über eine Ansicht) Auswählen, laufen sie durch mod 100000:
⋮
99998 % 100000 = 99998
99999 % 100000 = 99999
100000 % 100000 = 0
100001 % 100000 = 1
⋮
Sie können diese transparent machen, indem eine Ansicht zur Auswahl:
CREATE SQL SECURITY INVOKER VIEW whatever AS
SELECT
foo, bar, baz, autoid % 100000 AS autoid, taz
FROM base_table;
Leider wird diese Ansicht wahrscheinlich nicht aktualisierbar sein und MySQL unterstützt nicht INSTEAD OF
Trigger, so dass Sie die zugrunde liegende Tabelle senden müssen würden schreibt.
- 1. Mysql zu wiederholen, um
- 2. wiederholen Kunden zählen Monat weise in Mysql
- 3. Wiederholen Dropdown-Felder - 20 insgesamt - Mysql - PHP
- 4. PHP & MySQL: Wiederholen Problem Einträge - jeder Eintrag nur einmal zu zeigen, aber sie wiederholen
- 5. Angularjs - erkennen, wenn ng-wiederholen innerhalb ng-wiederholen Ende wiederholen
- 6. Imagemagick GIF-Dimensionen wiederholen und wiederholen
- 7. MySQL-Referenzierung, um zu vermeiden, mich zu wiederholen?
- 8. MySql liefern Zählung wiederholen, basierend auf mehreren Kriterien
- 9. LiveCode Wiederholen
- 10. Wiederholen von Zeilen in Crystal Report
- 11. Vermeiden wiederholen Aussagen erfordern in NodeJS Module
- 12. MSTest-Test mehrmals wiederholen
- 13. Wiederholen einer Codeausführung
- 14. Wiederholen LINQ Abfrage
- 15. Tabellenköpfe im Druckmodus wiederholen
- 16. Laravel 5 Wiederholen ID
- 17. Android-Taste wiederholen Funktion
- 18. Wie wiederholen ich regex
- 19. UILocalNotification Wiederholen Einmalig Wöchentlich
- 20. Dienst nicht zu wiederholen
- 21. CSS3 Animation Wiederholen
- 22. Wiederholen mehrerer Zeichen Regex
- 23. Hintergrund mit Clip wiederholen?
- 24. curl auf Timeout wiederholen
- 25. ListView-Daten wiederholen
- 26. Vim: Vorherige Bewegung wiederholen?
- 27. Funktion im Zeitintervall wiederholen?
- 28. wiederholen Text in Script
- 29. Wiederholen bei Timeout?
- 30. Verbessern auf Schleife-wiederholen
Ich glaube nicht, dass es eine Möglichkeit gibt, 'auto_increment' zurückzusetzen, es sei denn, Sie löschen Zeilen, schneiden die Tabelle ab oder erstellen die Spalte neu. – Eric