AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL: Datenbank zähler bei 100000 starten lassen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL: Datenbank zähler bei 100000 starten lassen

Ein Thema von Plague · begonnen am 10. Jul 2006 · letzter Beitrag vom 12. Jul 2006
Antwort Antwort
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

SQL: Datenbank zähler bei 100000 starten lassen

  Alt 10. Jul 2006, 14:18
Datenbank: MySQL • Version: 4 • Zugriff über: Noch gar nicht ;)
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
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#2

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 10. Jul 2006, 14:23
du sucht auto_increment hatten wir in den letzten 24 std schon mal
hier
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#3

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 10. Jul 2006, 14:26
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?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#4

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 10. Jul 2006, 14:34
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:
auto_increment=10000 gehen?

Edit:
OK, es geht nicht habe es probiert...
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#5

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 11. Jul 2006, 23:56
Eine weiter möglichkeit wäre du erstellt einen zweiten Feld z.B. nummer und speicherst dort die Nummer ab:

Delphi-Quellcode:
  with Tabelle do
  begin
    Append;
    Fieldbyname('Nummer').AsInteger := 10000 + Fieldbyname('ID').AsInteger;
    Post;
  end;
Oder das machst du OnBeforePost
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 12. Jul 2006, 07:13
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.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#7

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 12. Jul 2006, 08:28
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
  Mit Zitat antworten Zitat
Benutzerbild von ArmyMan
ArmyMan

Registriert seit: 25. Mai 2004
Ort: Wil Sg
193 Beiträge
 
#8

Re: SQL: Datenbank zähler bei 100000 starten lassen

  Alt 12. Jul 2006, 10:00
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
ArmyMan
Reden ist Schweigen, Silber ist Gold!
Der Soldat friert nicht. Er zittert nur vor Wut, weil es so kalt ist.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz