Klucz obcy a wartość domyślna

0

Witam

Przykładowa relacja z bazy danych:

ALTER TABLE `pages` ADD FOREIGN KEY ( `layout_id` ) REFERENCES `cms`.`layouts` (
`id`
);

Definicja pola pages.layout_id:

ALTER TABLE `pages` CHANGE `layout_id` `layout_id` INT( 10 ) UNSIGNED NULL DEFAULT '0'

Czyli chcę mięć możliwość ustawienia braku takiej relacji.

Ale przy dodawania wiersza otrzymuję taki błąd:

#1452 - Cannot add or update a child row: a foreign key constraint fails (cms.pages, CONSTRAINT pages_ibfk_1 FOREIGN KEY (layout_id) REFERENCES layouts (id))

Może mi ktoś wyjaśnić dlaczego i jak mogę to rozwiązać.
Pozdrawiam

0

rozwiązaniem jest null a nie 0. Dla FK wszystko co nie jest null musi mieć odpowiadający mu rekord w tabeli, do której FK się odwołuje

0

dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1