Heim > Datenbank > MySQL-Tutorial > Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl – ​​So beheben Sie den MySQL-Fehler: Die untergeordnete Zeile weist eine Fremdschlüsseleinschränkung auf

Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl – ​​So beheben Sie den MySQL-Fehler: Die untergeordnete Zeile weist eine Fremdschlüsseleinschränkung auf

王林
Freigeben: 2023-10-05 08:22:55
Original
956 Leute haben es durchsucht

Cannot add or update a child row: a foreign key constraint fails - 如何解决MySQL报错:子行有外键约束

So lösen Sie den MySQL-Fehler: Die untergeordnete Zeile weist eine Fremdschlüsseleinschränkung auf, ein spezifisches Codebeispiel ist erforderlich.

Bei Verwendung einer MySQL-Datenbank kann der Fehler „Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl“ auftreten. Dieser Fehler weist normalerweise auf ein Fremdschlüsseleinschränkungsproblem beim Einfügen oder Aktualisieren von Daten hin. In diesem Artikel wird erläutert, wie Sie dieses Problem lösen können, und es werden konkrete Codebeispiele bereitgestellt.

Lassen Sie uns zunächst die Fremdschlüsseleinschränkungen verstehen. In einer Datenbank ist ein Fremdschlüssel eine Beziehung, die zum Herstellen einer Verbindung zwischen Tabellen verwendet wird. Es verweist auf den Primärschlüssel einer anderen Tabelle und wird zur Aufrechterhaltung der Datenkonsistenz und -integrität verwendet. Fremdschlüsseleinschränkungen beschränken das Einfügen oder Aktualisieren von Daten. Die angegebenen Bedingungen müssen erfüllt sein, andernfalls wird ein Fehler ausgegeben.

Wenn wir auf den Fehler „Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl“ stoßen, liegt dies im Allgemeinen an einem der folgenden Gründe:

  1. Es liegt eine Fremdschlüsseleinschränkung vor, aber die eingefügten oder aktualisierten Daten erfüllt nicht die Einschränkungsbedingungen.
  2. Es gibt eine Fremdschlüsseleinschränkung, aber der entsprechende Primärschlüssel ist in der Haupttabelle nicht vorhanden.

Hier sind mehrere gängige Lösungen:

  1. Überprüfen Sie, ob die Daten die Fremdschlüsseleinschränkungen erfüllen: Stellen Sie vor dem Einfügen oder Aktualisieren der Daten sicher, dass die Daten die Bedingungen der Fremdschlüsseleinschränkungen erfüllen. Wenn sich der Fremdschlüssel beispielsweise auf den Primärschlüssel einer anderen Tabelle bezieht, müssen die Daten, die in das Fremdschlüsselfeld eingefügt oder aktualisiert werden, in der Primärtabelle vorhanden sein.
  2. Überprüfen Sie, ob der entsprechende Primärschlüssel in der Haupttabelle vorhanden ist: Wenn der entsprechende Primärschlüssel in der Haupttabelle nicht vorhanden ist, wird beim Einfügen oder Aktualisieren von Daten in der Untertabelle ein Fremdschlüsseleinschränkungsfehler ausgelöst. In diesem Fall müssen Sie zuerst die entsprechenden Primärschlüsseldaten in die Haupttabelle einfügen und dann die Untertabelle einfügen oder aktualisieren.

Hier ist ein spezifisches Codebeispiel, um zu veranschaulichen, wie dieses Problem gelöst werden kann:

Angenommen, wir haben zwei Tabellen: Benutzertabelle (Benutzer) und Auftragstabelle (Bestellungen). Der Primärschlüssel der Benutzertabelle ist die Benutzer-ID (user_id), und der Fremdschlüssel der Bestelltabelle ist die Benutzer-ID, die zum Zuordnen der Benutzertabelle verwendet wird. 🔜

order_id INT PRIMARY KEY AUTO_INCREMENT,

user_id INT,

order_date DATE,

FOREIGN KEY (user_id) REFERENCES users(user_id)
);

Jetzt wollen wir ein Datenelement in die Bestelltabelle einfügen, aber die Benutzer-ID nicht in der Benutzertabelle vorhanden ist, wird ein Fremdschlüsseleinschränkungsfehler ausgelöst. Um dieses Problem zu lösen, können wir zunächst entsprechende Benutzerdaten in die Benutzertabelle einfügen und dann die Bestelldaten einfügen:

-- Zuerst Benutzerdaten einfügen

INSERT INTO user(username) VALUES ('John');


- - Dann Bestelldaten einfügen
INSERT INTOorders(user_id, order_date) VALUES (1, '2022-01-01');

Mit dem obigen Beispielcode können wir „Kann keine untergeordnete Zeile hinzufügen oder aktualisieren“ lösen: a Fehler „Fremdschlüsseleinschränkung schlägt fehl“.

Zusammenfassend lässt sich sagen, dass wir bei der Behebung dieses Fehlers sicherstellen müssen, dass die Daten die Bedingungen der Fremdschlüsseleinschränkungen erfüllen und der entsprechende Primärschlüssel in der Haupttabelle vorhanden ist. Indem wir die Daten- und Tabellenstruktur sorgfältig überprüfen und Daten in der richtigen Reihenfolge einfügen oder aktualisieren, können wir dieses Problem erfolgreich lösen.

Ich hoffe, dass der Inhalt dieses Artikels hilfreich ist, um den Fehler „Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl“ zu beheben. Wenn Sie auf ähnliche Probleme stoßen, ergreifen Sie bitte geeignete Lösungen basierend auf der spezifischen Situation und beziehen Sie sich auf die obigen Codebeispiele. Viel Glück bei Ihren MySQL-Datenbankoperationen!

Das obige ist der detaillierte Inhalt vonEine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl – ​​So beheben Sie den MySQL-Fehler: Die untergeordnete Zeile weist eine Fremdschlüsseleinschränkung auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage