Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Foreign Key

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Hoppel, 11 September 2015.

  1. Hoppel

    Hoppel Aktiver Benutzer

    Hi,

    ich habe eine ganz unangenehme Frage. Ich habe eine Datenbank entworfen und möchte nun N:M Kardinalitäten abbilden. Ich weiß, dass dem entsprechend in der Relation beide Primärschlüssel als Fremdschlüssel definiert werden müssen.

    Code:
    CREATE TABLE liegt( LagerNr varchar(500) not null, ArtNr varchar(500) not null,
    CONSTRAINT liegt_fk FOREIGN KEY (LagerNr) REFERENCES Lager(LagerNr))
    Soweit funktioniert es, aber dann hätte ich ja nur eine 1:N-Beziehung.

    Wie erweitere ich den Befehl, dass das abgebildet wird, was ich mir wünsche.

    Vielen lieben Dank!
     
  2. ukulele

    ukulele Datenbank-Guru

    Mit
    Code:
    ALTER TABLE liegt ADD CONSTRAINT liegt_Lager_fk FOREIGN KEY (LagerNr) REFERENCES Lager(LagerNr);
    ALTER TABLE liegt ADD CONSTRAINT liegt_Artikel_fk FOREIGN KEY (ArtNr) REFERENCES Artikel(ArtNr);
    würdest du zwei Fremdschlüssel für die Tabelle definieren. Abgesehen davon das die unterschiedlich heißen müssen gibt es nicht viel zu beachten. Man kann sie auch gleich im CREATE Statement mit erstellen, ich lege sie aber aus gewohnheit immer nachträglich an.
     
  3. Hoppel

    Hoppel Aktiver Benutzer

    Vielen Dank für den Hinweis.

    Jetzt stehe ich vor einem neuen Problem und finde den Fehler nicht. Ich möchte die Daten in die Datenbank importieren und benutze dafür das von Microsoft bereitgestellte Programm "SQL Server Import/Export-Assistent". Beim Import erhalte ich folgende Fehlermeldung, mit der ich nichts anfangen kann:

    In der Datenbank existiert eine Tabelle "enthaelt" mit den Spalten "ArtNr" und "BelegNr" mit zwei Schlüsseln "enthaelt_Artikel_fk" und "enthaelt_Belege_fk".

    Habt ihr eine Idee wo der Fehler liegt?

    Vielen Dank!
     
  4. ukulele

    ukulele Datenbank-Guru

    Hier wird ein Konflikt mit dem Foreign Key enthaelt_Artikel_fk angezeigt. Du versuchst vermutlich einen oder mehrere Datensätze in deine Tabelle zu schreiben deren FK auf einen Eintrag zeigt, der noch nicht existiert. Der Eintrag, auf den der FK zeigt, muss bereits existieren.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden