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;

Komentáře

Vaše reakce na SQL - nejde nastavit foreign key - Cannot add or update a child row

Související obsah

programovani

sql

databaze

mysql

key

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.