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

1 odpovědí
09.11.2017 napsal TepOk1M dotaz do kategorie programovani 6 / 10

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

Vyřešeno

programovani sql databaze mysql key

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)

30.11.2017 odpověděl OL3G Moderátor
Zkontrolováno

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;

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace