Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#6

Re: Leere Zeilen entfernen und neu nummerieren

  Alt 22. Feb 2004, 16:25
Die Zahl da im Datenbankdesktop hat mit der Konkreten Zahl der Id-Spalte nichts zu tun! Diese Zahl wird jedesmal neu generiert, indem die Zeilen in der Tabelle gezählt werden z.B.:
SQL-Code:
SELECT Count(*)
  FROM TabellenName
liefert die Anzahl der Zeilen in einer Tabelle - bombensicher. Ohne "Wenn" und "Aber".

Stell Dir mal vor, Du hast eine Datenbank, bestehend aus 2 Tabellen:
Code:
[b][color=gray]Tabelle  Feld       Typ     Auto[/color][/b]
Topf     idTopf     int     Ja
 -"-      Durchmesser int     --
 -"-      Inhalt     int     -- 
 -"-      Farbe      char(25) --

und:

[b][color=gray]Tabelle  Feld       Typ     Auto[/color][/b]
Deckel   idDeckel   int         Ja
 -"-      idTopf     int         --
 -"-      Farbe      char(25)    --
Du befüllst nun die Topftabelle und anschließend die Deckeltabelle, alles schön farblich abgestimmt. Dann löscht Du einen Topf aus der Topftabelle und sortierst die idTopfspalte neu und vergibst "frische" fortlaufende Nummern: das Chaos ist perfekt!

Sicher kannst Du vorher mit einigem Aufwand die Deckeltabelle neu sortieren oder was auch immer. Aber stell Dir mal den Aufwand vor, in einer Datenbank mit um die 100 Tabellen, und mehreren Millionen Datensätzen, von deren richtigem Zusammenhang viel Geld oder gar Menschen abhängen...

Daher rührt man solche Id-Spalten unter keinen Umständen an.

Hoffe, das trägt ein wenig zum besseren Verständnis bei.
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat