Ist es möglich, in der SQL-Datenbank die Index Datenstruktur zu verändern?

...komplette Frage anzeigen

4 Antworten

Ein simples UPDATE wird dir bei einem Index nichts bringen, DELETE löscht zwar einen Eintrag, der Index wird aber nicht neu vergeben. "Enter" gibt es nicht, höchstens "INSERT", aber wie gesagt: Ein einmal vergebener Index wird nicht neu vergeben, sonst wäre das ganze ja ziemlich sinnlos.

Kann man einen Index manipulieren? Ja, prinzipiell ist das möglich. Man kann z.B. bei einer MSSQL-Datenbank ein "RESEED" des Index machen und dabei festlegen, ab welchem Index weitergezählt werden soll.

Grundsätzlich kann man in einer Datenbank alles ändern, sofern man Zugang mit entsprechender Berechtigung hat. Ob das sinnvoll ist oder nicht, oder üblich ist oder nicht, sei hier nicht Gegenstand der Frage. Vermutlich geht es bei dieser Frage gar nicht um einen Indes, sondern Um einen Primärschlüssel (der ein Index sein kann) und dann noch um einen autoincrement Index. Der Gutachter hat entweder keine Ahnung oder blufft mit seinem Fachwissen, da es zu diesem Thema viel Halbwissen herumgeistert und entsprechende Unsicherheiten gibt.

Wenn der Gutachter, wie hier vermutet wird, nicht seriös gearbeitet hat, nutzt er wahrscheinlich einen einfachen Trick: Weil es ziemlich sinnlos ist, einen Index zu ändern und das auch allgemein so gelehrt wird, sind viele der Meinung, wenn auch irrtümlich, das ginge auch nicht. Der Gutachter nutzt diesen verbreiteten Irrtum als willkommenes Argument im Glauben (oder Hoffen), dass es keiner merkt.

Anmerkung: Ich habe bei einem Kunden eine komplexe Datenbankanwendung mit 57 Tabellen und aufwändigen Verknüpfungen laufen. Ich verwende grundsätzlich keinen Autoincrement (automatisches Hochzählen einer laufenden Nr. durch die Datenbank), ich vergebe jeden Index einzeln vom Programm aus und kann den auch auf die gleiche Weise ändern. Normalerweise kommt das nur im Zusammenhang mit einer Fehlerbereinigung vor. Aber das muss dann ja auch machbar sein.

Zwischentabelle anlegen

Originaltabelle in Zwischentabelle kopieren

Originaltabelle löschen

Neue Tabelle mit Namen der Originaltabelle anlegen

Zwischentabelle in neue Tabelle kopieren, dabei die Reihenfolge so wählen, dass die gewünschten Indizes geschrieben werden; dabei Lücken in den Indizes mit Dummy-Daten füllen und diese Datensätze wieder löschen

Nicht vergessen: Zwischentabelle wieder löschen

Hi,

das kommt natürlich auf die Berechtigungen drauf an.

Ist jemand dazu berechtigt, kann er an einer SQL Datenbank quasi alles ändern / manipulieren

Was möchtest Du wissen?