sql >> Database teknologi >  >> RDS >> Mysql

Sådan sletter du fra en tabel uden at skulle slippe en begrænsning

Da fremmednøglen til din PRODUCT-tabel ikke angiver en ON DELETE handling, vil den have standardadfærden, som er RESTRICT . Da du ikke kan opdatere denne begrænsning til SET NULL , skal du nok selv indstille dem til NULL.

Først skal du ændre tabellen, så SUPPLIER_NAME-fremmednøglen kan acceptere NULL-værdier.

Opdater derefter de PRODUKTER, hvis leverandør er i USA, indstil deres SUPPLIER_NAME til NULL. Noget som dette:

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

Og endelig kan du så slette LEVERANDØRERNE med COUNTRY ='USA'.




  1. VÆLG WHERE IN med GROUP_CONCAT som input

  2. Sådan overføres alle MySQL-databaser fra gammel til ny server

  3. MYSQL-forespørgsel, der returnerer 'ressource-id#12 i stedet for den numeriske værdi, den skal returnere

  4. ResultSet getString-tegnkodning for unicode-tegn