Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Finden Sie heraus, welche Zeile beim Hinzufügen einer Einschränkung in MySQL fehlschlägt

Überprüfen Sie zuerst, ob eine Kategorietabelle existiert, in die Sie versuchen, diese Daten zu importieren.

Wenn die Kategorietabelle existiert, müssen Sie überprüfen, ob alle category_id in dieser Tabelle in der Kategorietabelle als ID vorhanden sein sollten.

Eine bessere Option ist, zuerst die Kategorietabelle und dann diese Tabelle zu importieren.

Im Allgemeinen sollten zuerst alle übergeordneten Tabellendaten importiert werden, dann untergeordnete Tabellen.

Ein unsauberer Weg ist wie unten beschrieben, was nicht empfohlen wird-

set foreign_key_checks=0;
import data here;
set foreign_key_checks=1;

Nur um zu wissen, welche Zeile ein Problem verursacht-

Die folgende Abfrage liefert Ihnen problematische Zeilen.

SELECT a.category_id FROM Category_Term a 
  LEFT JOIN Category b ON a.category_id=b.id 
  WHERE b.id IS NULL;

Hinweis:Angenommen, category_id in category_term und id in Kategorietabellen werden indiziert.