Primärkey ändern - Probleme/Risiken

28. Juni 2016 16:19

Hallo zusammen

Ein Kunde von mir wünscht eine Änderung des Primärkeys in einer Standardtabelle. Ich selber würde davon abraten (Migrationsfähigkeit, nachgelagerte Anpassungen an diversen Programmen, usw.)

Mich würde hier eure Meinung dazu interessieren. Würdet ihr auch davon abraten? Was sind die möglichen Risiken, usw.? Habt ihr seler schon Erfahrungen gemacht in diesem Zusammenhang?

Bin für jeden Meinung dankbar.

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 16:43

Die Probleme hast du ja schon genannt. Um welche Tabelle geht es denn? Muss wirklich der Primärschlüssel geändert werden oder kann man das anders lösen?

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 16:53

enh hat geschrieben:...Um welche Tabelle geht es denn? Muss wirklich der Primärschlüssel geändert werden oder kann man das anders lösen?


Es ist Tabelle 5069, Anreden, zwar eher überschaubar, könnte man aber sicher anders lösen in dem man anstelle mit GET zugreift, FILTER-Funktionen verwendet um die Eindeutigkeit sicherzustellen.

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 17:04

Die Änderung des Primärschlüssels macht nur Sinn wenn der Standardprimärschlüssel nicht eindeutig ist und man ein weiteres Feld benötigt um einen eindeutigen Schlüssel zu haben. (Ich kenen eine Projektbranchenlösung wo man den Primärschlüssel in der Tabelle 167 von "No." zu "Status,No." geändert hat. Ob sowas notwendig ist oder zumindest Sinn macht ist dann die Frage.)
Sonst würde ich nur einen zusätzlichen Schlüssel anlegen und an der/den entsprechenden Code-Stelle(n) entsprechend filtern statt mit GET den Datensatz aufzurufen.

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 17:23

Hallo,

das kommt darauf an. Für Artikel, Debitor, Kreditor,.., also sehr grundlegende Daten, würde ich das auch nicht machen.

Für untergeordnete Tabellen (Rabatte, Preise,..) bleibt einem kaum etwas anderes übrig, wenn man eine feinere Unterteilung benötigt.

Gruß Fiddi

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 18:12

Hmmm... Was spricht denn dagegen, gerade bei einer so übersichtlichen Tabelle, eine neue anzulegen? Die Stellen im Code wo die referenziert wird mußt du eh anfassen.

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 18:15

Und die Antwort auf die eigentliche frage: Wenn möglich nicht. Probleme gibt's immer bei den Updates. Mit was neuem gehst du dem aus dem Weg.

Re: Primärkey ändern - Probleme/Risiken

28. Juni 2016 18:36

Besten Dank für alle eure Antworten. Bestätigt das, was ich auch denke.

Re: Primärkey ändern - Probleme/Risiken

30. Juni 2016 09:56

Huhu,

ich kann mich meinen Vorrednern auch nur anschließen. Wenn man die Tabelle jedoch nicht noch einmal mit einer neuen ID versehen möchte, weil darauf auch Pages, Reports, WebServices etc beruhen können, wäre eine weitere Lösung eine Funktion in der Tabelle zu ergänzen: z.B. GetRec,

diese holt sich anhand der übergebenen Werte (Neuer PK) den richtigen Datensatz per SETRANGE/FINDFIRST oder besser per FIND('=') und gibt den Record zurück.
Man müsste zwar immer noch die Aufrufe ändern, aber auch nur dort wo sie benötigt werden.

Viele Grüße
Thomas