Nie można dodać kolumny NOT NULL do tabeli, która ma więcej niż zero wierszy, gdy kolumna jest ograniczona do wartości zgodnych z wartościami w tabeli nadrzędnej, a mimo to zawiera tylko wartości NULL, ponieważ jest to nowa, niewypełniona kolumna bez wartości DEFAULT .
Rozwiązaniem jest wykonanie tego etapami:dodaj kolumnę, ale nie deklaruj jej wartości NOT NULL i nie deklaruj jeszcze klucza obcego.
ALTER TABLE boys
ADD COLUMN toy_id INT;
Następnie wypełnij go prawidłowymi danymi, które pasują do niektórych wartości w tabeli zabawek.
UPDATE boys SET toy_id = ...;
Następnie zmień kolumnę na NOT NULL i utwórz ograniczenie:
ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);