Vì khóa ngoại cho bảng PRODUCT của bạn, không chỉ định ON DELETE
hành động, nó sẽ có hành vi mặc định là RESTRICT
. Vì bạn không thể cập nhật ràng buộc này thành SET NULL
, bạn có thể phải tự đặt chúng NULL.
Trước tiên, hãy thay đổi bảng để khóa ngoại SUPPLIER_NAME có thể chấp nhận giá trị NULL.
Sau đó, cập nhật SẢN PHẨM có nhà cung cấp ở Hoa Kỳ, đặt SUPPLIER_NAME của họ thành NULL. Một cái gì đó như thế này:
update PRODUCT set SUPPLIER_NAME = NULL where SUPPLIER_NAME IN (
select SUPPLIER_NAME from SUPPLIER where COUNTRY = 'USA');
Và cuối cùng, bạn có thể xóa NHÀ CUNG CẤP với COUNTRY ='USA'.