Bạn không thể thêm cột KHÔNG ĐẦY ĐỦ vào bảng có nhiều hơn 0 hàng, khi cột bị giới hạn ở các giá trị khớp với các giá trị trong bảng mẹ và chỉ có giá trị NULL vì đó là cột mới, chưa được phổ biến và không có DEFAULT .
Cách giải quyết là thực hiện theo từng giai đoạn:thêm cột, nhưng không khai báo nó KHÔNG ĐỦ và chưa khai báo khóa ngoại.
ALTER TABLE boys
ADD COLUMN toy_id INT;
Sau đó, điền vào nó dữ liệu hợp lệ khớp với một số giá trị trong bảng đồ chơi của bạn.
UPDATE boys SET toy_id = ...;
Sau đó, thay đổi cột thành KHÔNG ĐẦY ĐỦ và tạo ràng buộc:
ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);