2009-05-26 13 views
1

Ich komme direkt auf den Punkt. Ich baue eine Website auf einer bestehenden Datenbank, die keine Beziehungen hatte, um sie konsistent zu halten. Ich versuche nun, Beziehungen hinzuzufügen, um dieses Consistency-Problem zu lösen.SQL Foreign Key Constraint erlaubt keine Beziehung

vereinfacht: Ich habe eine Lager Artikel Tabelle, Standorte Tabelle und eine Teile-Tabelle.

Die Lagerartikel-Tabelle verwendet IDs, die in anderen Tabellen gefunden werden können (Fremdschlüssel). Diese Tabelle verwendet mehrere Spalten als Primärschlüssel (einschließlich locationid und partnr + einige andere) Ich habe erfolgreich eine Beziehung zwischen der Location ID in der Lagerartikel-Tabelle und der Standorttabelle hinzugefügt. Das Problem tritt auf, wenn ich versuche, die Beziehung zwischen der Lagerartikel- und Teiletabelle hinzuzufügen:

Die ALTER TABLE-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung (in der Teiletabelle, Teilenummertabelle).

Ich überprüfte die Einschränkungen und keiner war da. Ich habe versucht, nach Referenzen suchen Teile unexisting, aber ich konnte eine schlechte Abfrage geschrieben haben ...

kann mir herauszufinden, jemand helfen, wie dieses Problem beheben?

Antwort

1

Yup, es klingt wie Sie eine schlechte Abfrage geschrieben haben und es gibt Verweise auf nicht vorhandene Teile.

SELECT partnumberid, (andere Felder)
FROM Lagerware
WHERE partnumberid NOT IN (SELECT partnumberid FROM Teile)

oder

SELECT partnumberid, (otherfields)
FROM Lagerware si
LEFT JOIN-Teile p ON si.partnumberid = p.partnumberid
WHERE p.partnumberid ist NULL

+0

es scheint, es gab eine Aufnahme ohne PartNR, die ich mit Ihrer Antwort gefunden habe, THX! –

Verwandte Themen