![]() |
Datenbank: MySQL • Version: 4 • Zugriff über: Noch gar nicht ;)
SQL: Datenbank zähler bei 100000 starten lassen
Hallo,
wie kann ich in einer Datenbanktabelle (die ich im Moment erstelle) die ID (PRIMARY KEY) eigenständig hochzählen lassen, aber als Startwert 100000 setzen? Geht das überhaupt mit MySQL? Danke und Gruß Thomas |
Re: SQL: Datenbank zähler bei 100000 starten lassen
|
Re: SQL: Datenbank zähler bei 100000 starten lassen
1.) Geht das nicht so einfach weil:
2.) Ist das Schwachfug. ;-) Eine Möglichkeit wäre, einen Datensatz mit der Id 99999 anzulegen und wieder zu löschen, danach macht MySQL bei 100000 weiter, aber das ist eigentlich Sinnfrei. Was wäre so schlimm, das Autoincrement das machen zu lassen wofür es da ist: Ab 1 allen Datensätzen eine eindeutige Nummer zuzuweisen? |
Re: SQL: Datenbank zähler bei 100000 starten lassen
ich möchte eine Suche anhand einer Nummer machen. Wenn da einige Dinge die ID 3 haben und danere eine 231 ist das (finde ich) doof. Deshalb möchte ich schlichtweg höher starten.
Würde es denn mit dem Anhang:
SQL-Code:
gehen?
auto_increment=10000
Edit: OK, es geht nicht habe es probiert... |
Re: SQL: Datenbank zähler bei 100000 starten lassen
Eine weiter möglichkeit wäre du erstellt einen zweiten Feld z.B. nummer und speicherst dort die Nummer ab:
Delphi-Quellcode:
Oder das machst du OnBeforePost
with Tabelle do
begin Append; Fieldbyname('Nummer').AsInteger := 10000 + Fieldbyname('ID').AsInteger; Post; end; |
Re: SQL: Datenbank zähler bei 100000 starten lassen
So wie karstadt es schreibt klappt das nicht, weil du das ID Feld nach dem Append noch gar nicht auslesen kannst, sondern frühestens nach dem Post. Je nach Zugriff muss Du sogar erst ein Refresh machen.
Prinzipiell gilt als immer zu beachten: Man lasse die Finger weg von selbstinkrementierenden Feldern. Dafür sind die nicht gedacht. Erst gestern hatten wir bei der Arbeit den Fall, dass uns ein Kunde 2 Datensätze mit gleicher ID geliefert hat... Das passiert irgendwann immer, wenn man an diesen Feldern rumpfuscht... Deshalb lieber, wie Karstadt vorgeschlagen hat, ein 2. Feld hinzu, das Du dann von mir aus händisch füllst. Das kann bei fortlaufenden Rechnungen sinnvoll sein, da Du dort keine Sprünge in der Nummerierung drinhaben darfst (laut Gesetz). Aber die eindeutige Referenz soll die automatische ID bleiben. |
Re: SQL: Datenbank zähler bei 100000 starten lassen
Mein Fehler.
Du machst das in OnAfterInsert oder du machst es so:
Delphi-Quellcode:
Function GibLetzteNummer:String; begin With Tabelle do begin SELECT Max (ID) From Tabelle Result := Fieldbyname('ID'); // Musst du diese Funktion selber anpasse ;) end; end; Ich habe für solche fälle eine Nummerkreistabelle. ID;Nummer;Bezeichnung Nun kann ich neue Datensätze anlege und beim Nummerabfrage setzte ich den Wert Nummer + 1 |
Re: SQL: Datenbank zähler bei 100000 starten lassen
Also wie ich das verstehe will Plague eine neu erstellte Tabelle abfüllen wobei der anfangswert vom auto_increment 100000 sein sollte. Falls du phpMyAdmin oder sonst ein MySQL Admin Tool hast, kanns du das in der Tabelle definieren. Es gibt ein Feld indem man sieht wo der auto_increment Wert zur zeit steht. Dort kannst du einfach am anfang 100000 eintragen und der erste datensatz beginnt mit der ID 100000.
Hoffe ich konnte dir helfen... Greetz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz