sql >> Base de Datos >  >> RDS >> Mysql

Cómo eliminar de una tabla sin tener que eliminar una restricción

Como clave externa a su tabla PRODUCTO, no especifique un ON DELETE acción, tendrá el comportamiento predeterminado que es RESTRICT . Como no puede actualizar esta restricción a SET NULL , probablemente tendría que establecerlos en NULL usted mismo.

Primero, modifique la tabla para que la clave externa NOMBRE_PROVEEDOR pueda aceptar valores NULOS.

Luego, actualice los PRODUCTOS cuyo proveedor se encuentra en los EE. UU., configure su NOMBRE_PROVEEDOR en NULL. Algo como esto:

update PRODUCT set SUPPLIER_NAME = NULL where SUPPLIER_NAME IN (
select SUPPLIER_NAME from SUPPLIER where COUNTRY = 'USA');

Y por último, puede eliminar los PROVEEDORES con PAÍS ='EE. UU.'.