Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So löschen Sie aus einer Tabelle, ohne eine Einschränkung löschen zu müssen

Geben Sie als Fremdschlüssel zu Ihrer PRODUCT-Tabelle keinen ON DELETE an Aktion, hat es das Standardverhalten, das RESTRICT ist . Da Sie diese Einschränkung nicht auf SET NULL aktualisieren können , müssten Sie sie wahrscheinlich selbst auf NULL setzen.

Ändern Sie zunächst die Tabelle, sodass der Fremdschlüssel SUPPLIER_NAME NULL-Werte akzeptieren kann.

Aktualisieren Sie dann die PRODUKTE, deren Lieferanten sich in den USA befinden, und setzen Sie deren SUPPLIER_NAME auf NULL. Etwa so:

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

Und zuletzt können Sie dann die LIEFERANTEN mit COUNTRY ='USA' löschen.