Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo liebe Leute,

ich habe ein Problem mit einer MySQL-Datenbank.

Ich habe eine geschrieben in der man unter anderem etwas einfügen und löschen kann. Doch wenn ich das mache setzt sich der Index nicht zurück.

Beispiel:

Ich füge 3 Einträge ein, die mit dem Index: 1, 2, und 3 bezeichnet sind. Wenn ich nun den Eintrag mit Index 3 lösche und einen neuen Einfüge hat dieser den Index 4.

Dann klafft da aber ne Lücke und das würde ich gerne vermeiden oder im nachhinein korrigieren.

Ist das in MySQL möglich? Habe im Handbuch kein Befehl wie "Set Index" gefunden, nur einen "Create Index" um einen zu erstellen und "Drop Index" um einen zu löschen, als Unterbefehle von "Alter Table"

Könnt ihr mir bitte einen Rat geben?

mfg Astasor

Meinst du mit "Index" einen Auto increment Primary Key?

Geht soweit ich weiß nicht (außer vllt. mit Truncate ;) ), und wenn es doch geht, würde ich es trotzdem nicht tun.

Der ist dazu da, um einen Datensatz eindeutig zu identifizieren, und sollte auch unter gelöschten Datensätzen eindeutig sein und nicht verändert werden.

Gegenfrage: Wieso möchtest du dies tun? Damit es optisch "schöner" aussieht?

Ein Index soll einen Datensatz eindeutig kennzeichnen. Sobald du den Datensatz löscht und einen neuen erstellst ist es doch beabsichtig, dass dieser einen neuen Index bekommt. Es ist ja schließlich ein "NEUER" Datensatz.

  • Autor

zu aller erst: Ich meinte einen Index vom Typ INT mit den Attributen PRIMARY KEY und AI

Eure Antworten sind gut und so hatte ich das noch gar nicht betrachtet. :) Mein Gedanke war das es optisch schöner aussieht und irgendwie aufgeräumter, als wenn da so viele Lücken drin sind und das man die Indizes der gelöschten Datensätze halt wiederverwenden kann.

Das man aber noch die gelöschten Datensätze eindeutig bestimmen können sollte hatte ich echt nicht bedacht xDD

Aber angenommen man löscht etwas und dann ist so viel Zeit vergangen, das es keinen mehr stört. Sollte man dann nicht die Tabelle Indexmäßig wieder "herrichten"?

Aber angenommen man löscht etwas und dann ist so viel Zeit vergangen, das es keinen mehr stört. Sollte man dann nicht die Tabelle Indexmäßig wieder "herrichten"?

Nö.

Wozu?

Sie soll eindeutig sein und nicht schön aussehen. Das DBMS sorgt schon dafür, dass es "aufgeräumt" ist.

Die ID sollte nirgendwo außer direkt in der DB zu sehen sein.

Wenn du unbedingt einen Zähler brauchst legst du dir dafür eine eigene Spalte an oder benutzt eine Komponente zum Anzeigen, die das selbst macht.

Bearbeitet von Thelvan

Einen Primary Key wiederzuverwenden ist ein absolutes No Go. Ich möchte z.b. noch den Case erwähnen, wenn Daten in einen weitere Datenbank exportiert werden müssen (z.b. ein Datamart / Datawarehouse) und du in deiner Source DB die PK änderst stimmen deine Referenzen nicht mehr, so dass du keine ückschlüsse auf die Quelldaten mehr machen kannst.

@smite

>>>>

Ein Index soll einen Datensatz eindeutig kennzeichnen.

<<<<

Nur eine Präzisierung : Ein Primary Key soll einen Datensatz eindeutig kennzeichnen, ein Index kann durchaus mehrfach dieselben Werte enthalten, so er nicht als UNIQUE definiert worden ist

Bitte einmal die mySQL Doku lesen, da steht genau drin, dass er PKs nicht mehr verwendet, wenn sie einmal vergeben wurden. Es hat aber durchaus einen Sinn es so zu machen, denn damit bleibt die Eindeutigkeit erhalten

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.