Du kan ikke tilføje en NOT NULL-kolonne til en tabel, der har mere end nul rækker, når kolonnen er begrænset til værdier, der matcher dem i den overordnede tabel, og alligevel kun har NULL-værdier, fordi det er en ny, ikke-udfyldt kolonne uden STANDARD .
Løsningen er at gøre det i trin:Tilføj kolonnen, men erklær den ikke som NOT NULL, og erklær ikke fremmednøglen endnu.
ALTER TABLE boys
ADD COLUMN toy_id INT;
Udfyld den derefter med gyldige data, der matcher nogle værdi(er) i din legetøjstabel.
UPDATE boys SET toy_id = ...;
Skift derefter kolonnen til IKKE NULL, og opret begrænsningen:
ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);