ERROR 1452 (23000): Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl

8

Wenn ich den folgenden SQL-Befehl ausführe:

%Vor%

Ich erhalte die folgende Fehlermeldung:

%Vor%

Meine Tabellen:

%Vor%

Ich habe viele ähnliche Fälle untersucht, konnte aber keine Lösung finden. Jede Hilfe wäre willkommen.

    
Himal 15.12.2012, 11:47
quelle

3 Antworten

18

Der Grund, warum Sie diese Ausnahme erhalten, ist, dass Sie einen Datensatz in die Tabelle test_usershosts einfügen, wobei der Wert von userID in der Tabelle test_users nicht vorhanden ist. Genauso wie der Wert von hid nicht auch in der Tabelle test_hosts vorhanden ist.

Tabelle test_usershosts ist abhängig von Tabellen: test_users und test_hosts . Stellen Sie daher sicher, dass beim Einfügen von Datensätzen in die Tabelle test_usershosts die Werte für hid und userid bereits in den übergeordneten Tabellen vorhanden sind: test_users und test_hosts .

Versuchen Sie, diese Abfrage auszuführen, und es wird sicher eingefügt.

%Vor%

Ich sehe, dass die Option AUTO_INCREMENT für Tabellen: test_users und test_hosts nicht benötigt wird, da Sie Werte für jede Abfrage bereitstellen, die Sie in den beiden Tabellen ausführen.

    
John Woo 15.12.2012, 12:00
quelle
2

In test_users guest's UserID ist 1120 und in test_hosts hid = 30

Sie müssen

ändern %Vor%

zu:

%Vor%     
w770115 15.12.2012 12:00
quelle
-1

in meinem Fall, falls es jemandem dient. Ich habe mich bemüht, die Lösung zu finden, die normalerweise passiert, wenn ein Primärschlüssel als einzigartig gekennzeichnet wird. aber in meinem Fall wurde es nur als primary markiert und es wurde nicht als einzigartig markiert, bis ich bemerkte, dass die Option von unica "offen" war und ich klickte es an, bis ich mich dann die Beziehung machen ließ.

Dann für die Aufnahme ... überprüfen Sie, dass Ihre Primärschlüssel auch eindeutig sind.

    
ramiro 15.01.2018 17:14
quelle

Tags und Links