sql >> Database teknologi >  >> RDS >> Mysql

fejl ændring af tabel, tilføjelse af begrænsning udenlandsk nøgle får fejl Kan ikke tilføje eller opdatere en underordnet række

Du har mindst én dataværdi i answers.questions_id der ikke forekommer i questions.id .

Her er et eksempel på, hvad jeg mener:

mysql> create table a ( id int primary key);

mysql> create table b ( aid int );

mysql> insert into a values (123);

mysql> insert into b values (123), (456);

mysql> alter table b add foreign key (aid) references a(id);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint 
fails (`test`.`#sql-3dab_e5c`, CONSTRAINT `#sql-3dab_e5c_ibfk_1` FOREIGN KEY
(`aid`) REFERENCES `a` (`id`))

Du kan bruge dette til at bekræfte, at der er umatchede værdier:

SELECT COUNT(*)
FROM answers AS a
LEFT OUTER JOIN questions AS q ON a.questions_id = q.id
WHERE q.id IS NULL



  1. SQL Server 2008-support slutter. Hvad nu?

  2. Hvordan behandler MySQL ORDER BY og LIMIT i en forespørgsel?

  3. SQL-forespørgsel for at få den seneste række for hver forekomst af en given nøgle

  4. Hvorfor kan der kun være én TIMESTAMP-kolonne med CURRENT_TIMESTAMP i DEFAULT-sætning?