sql >> Database >  >> RDS >> Mysql

fout bij het wijzigen van de tabel, het toevoegen van een externe sleutel met een beperking krijgt een fout Kan een onderliggende rij niet toevoegen of bijwerken

U heeft ten minste één gegevenswaarde in answers.questions_id dat komt niet voor in questions.id .

Hier is een voorbeeld van wat ik bedoel:

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`))

U kunt dit gebruiken om te bevestigen dat er niet-overeenkomende waarden zijn:

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



  1. Is timestampdiff() in MySQL gelijk aan datediff() in SQL Server?

  2. de bovenliggende naam van de onderliggende categorie verkrijgen met een enkele zoekopdracht in mysql

  3. MySQL VARCHAR-lengtes en UTF-8

  4. Een Microsoft Access-rapport naar PDF converteren (3 manieren)