Primärschlüssel nachträglich erweitern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

bassman
**
Beiträge: 40
Registriert: Do, 25.02.2010 18:00

Primärschlüssel nachträglich erweitern

Beitrag von bassman »

Hallo,

ich möchte den PS einer Verknüpfungstabelle (m:n- Beziehung) nachträglich um ein zusätzliches Feld erweitern.
z.B. habe ich die Tabellen Studenten und Bücher. In der Verknüpfungstabelle hatte ich Studenten_ID und Bücher_ID als PS definiert. Nuin möchte ich auch das Ausleihdateum mit aufnehmen, damit ein Student mehrmals ein Buch ausleihen kann.

Anscheinend geht das aber nicht, da ich immer wieder Fehlermeldungen bekomme. Kennt jemand einen Work-around wie man das trotzdem bewältigen kann, ohne die ganze tabelle zu löschen?

Vielen Dank
RobertG
********
Beiträge: 2070
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Primärschlüssel nachträglich erweitern

Beitrag von RobertG »

Hallo bassman,

vermutlich musst Du zuerst den alten Schlüssel entfernen, damit das gelingt. Ich habe da auch etwas rum testen müssen.
Über Extras → SQL kannst Du auf jeden Fall mehrere Schlüssel zuordnen:

Code: Alles auswählen

ALTER TABLE "Tabelle" ADD PRIMARY KEY ("Feldname1", "Feldname2" ...);
Du kannst auch einen bereits existierenden Schlüssel entfernen:

Code: Alles auswählen

ALTER TABLE "Tabelle" DROP PRIMARY KEY;
Das tatsächliche Ergebnis siehst Du erst, wenn Du Ansicht → Tabellen aktualisieren wählst.

Gruß

Robert
bassman
**
Beiträge: 40
Registriert: Do, 25.02.2010 18:00

Re: Primärschlüssel nachträglich erweitern

Beitrag von bassman »

hi,
danke für deine Antwort. ich hab die PS alle entfernt und dann wieder alle hinzugefügt. geht leider nicht. er meldet: die Spalte xxx konnte nicht hinzugefügt werden. soll sie statdessen gelöscht und das format hinzugefügt werden?

sag mal, kann ich mir irgendwie den sql code der Tabellen anzeigen lassen? dann seh ich ja, wo der haken ist.

Gruß
RobertG
********
Beiträge: 2070
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Primärschlüssel nachträglich erweitern

Beitrag von RobertG »

Hallo bassman,

da muss an Deinem Code etwas faul sein. Du willst doch gar keine Spalte xxx hinzufügen. Die Spalten für den Primärschlüssel sind doch alle da, oder? Und die Spalten sind tatsächlich alle nicht leer, oder?

Wenn Du die Primärschlüssel entfernt hast - wird das auch in der Tabelle angezeigt, d.h. kannst Du ach keine Daten mehr eingeben?

Hast Du anschließend den Code unter Extras - SQL eingegeben, der für die Tabelle die neuen Primärschlüssel festlegen soll? Dort kommt ja eine Rückmeldung, welcher Teil des Befehls zu einem Fehler führt. Mir scheint, Du hast die Umänderung im Bearbeitungsmodus der Tabelle versucht und vermutlich an irgendeiner Stelle z.B. beim Datum NULL stehen - das darf bei einem Schlüsselfeld nicht sein.

Gruß

Robert
Antworten