sql >> Databasteknik >  >> RDS >> Mysql

Ta reda på vilken rad som misslyckas när du lägger till en begränsning i MySQL

Kontrollera först om det finns en kategoritabell där du försöker importera denna data.

om Kategoritabell finns måste du kontrollera att alla kategori_id i denna tabell ska finnas i Kategoritabell som id.

Bättre alternativ är att importera den första kategoritabellen och sedan den här tabellen.

I generiskt bör först alla överordnade tabelldata importeras och sedan underordnade tabeller.

Ett smutsigt sätt är enligt nedan vilket inte rekommenderas-

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

Bara för att veta vilken rad som skapar problem-

Frågan nedan ger dig problematiska rader.

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

Obs:Om vi ​​antar att kategori_id i kategori_term och id i kategoritabeller kommer att indexeras.



  1. Vad är en bra praxis/design för att tråda flera SQL-frågor i Python

  2. En introduktion till Databas High Availability för MySQL &MariaDB

  3. gem install pg kan inte binda till libpq

  4. Vad är det enklaste sättet att köra ett skript när ett e-postmeddelande tas emot?