sql >> Database >  >> RDS >> Mysql

Hoe te verwijderen uit een tabel zonder een beperking te hoeven laten vallen

Aangezien de refererende sleutel naar uw PRODUCT-tabel geen ON DELETE specificeert actie, zal het het standaardgedrag hebben dat is RESTRICT . Aangezien u deze beperking niet kunt bijwerken naar SET NULL , zou u ze waarschijnlijk zelf op NULL moeten instellen.

Wijzig eerst de tabel zodat de externe sleutel SUPPLIER_NAME NULL-waarden kan accepteren.

Werk vervolgens de PRODUCTEN bij waarvan de leverancier zich in de VS bevindt, stel hun SUPPLIER_NAME in op NULL. Zoiets als dit:

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

En als laatste kun je dan de LEVERANCIERS met COUNTRY ='USA' verwijderen.




  1. Is er een LastIndexOf in SQL Server?

  2. PostgreSQL:Is er een functie die een base-10 int converteert naar een base-36 string?

  3. Configureer JPA/Hibernate/PostgreSQL zonder XML

  4. Een ORA 02063 DG4ODBC-fout onderzoeken