SQL - nejde nastavit foreign key - Cannot add or update a child row

SQL - nejde nastavit foreign key - Cannot add or update a child row

Dobrý den,

nejde mi nastavit foreign key (cizí klíč) u existující MySQL tabulky InnoDB. Vazba je material.box_id na box.id. Dělám to takto a nejde to s chybou:

ALTER TABLE material ADD FOREIGN KEY (box_id) REFERENCES box(id);

Error

SQL query:

ALTER TABLE material
ADD FOREIGN KEY (box_id) REFERENCES box(id)
MySQL said: Documentation #1452 - Cannot add or update a child row: a foreign key constraint fails (`db`.`#sql-724_74c`, CONSTRAINT `#sql-724_74c_ibfk_1` FOREIGN KEY (`box_id`) REFERENCES `box` (`id`))

Také se mně tam objevila i tahle chyba, když jsem dělal nějaké další pokusy:

1005 - Can't create table 'material ' (errno: 150)

ODPOVĚĎ

Dobrý den,

u existujících SQL tabulek, které již mají vazbu nastavenou se nastavuje cizí klíč (foreign key) tak, že se alteruje podtabulka (zde material) a sloupec s vazbou (box_id) se nastaví jako cizí klíč na tabulku box a sloupec id, čili to máte dobře. Zkuste vypnout foreign key checks:

SET FOREIGN_KEY_CHECKS=0;
ALTER TABLE material
ADD FOREIGN KEY (box_id) REFERENCES box(id);
SET FOREIGN_KEY_CHECKS=1;
Jak se ti článek líbil?

Komentáře (0)

Přidat komentář