Не можете да добавите NOT NULL колона към таблица, която има повече от нула реда, когато колоната е ограничена до стойности, които съвпадат с тези в родителската таблица, и въпреки това има само NULL стойности, защото това е нова, непопълнена колона без DEFAULT .
Заобиколното решение е да го направите на етапи:добавете колоната, но не я декларирайте като NOT NULL и все още не декларирайте външния ключ.
ALTER TABLE boys
ADD COLUMN toy_id INT;
След това го попълнете с валидни данни, които съответстват на някои стойности във вашата таблица с играчки.
UPDATE boys SET toy_id = ...;
След това променете колоната да НЕ е NULL и създайте ограничението:
ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);