sql >> Databáze >  >> RDS >> Mysql

Jak odstranit z tabulky, aniž byste museli zrušit omezení

Jako cizí klíč vaší tabulky PRODUCT neurčujte ON DELETE akci, bude mít výchozí chování, které je RESTRICT . Protože toto omezení nemůžete aktualizovat na SET NULL , pravděpodobně byste je museli sami nastavit na hodnotu NULL.

Nejprve změňte tabulku tak, aby cizí klíč SUPPLIER_NAME mohl přijímat hodnoty NULL.

Poté aktualizujte PRODUKTY, jejichž dodavatel je v USA, nastavte jejich SUPPLIER_NAME na NULL. Něco jako toto:

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

A nakonec můžete odstranit DODAVATELE s COUNTRY ='USA'.




  1. Vkládání více hodnot do více sloupců z pole dat pomocí příkazu PDO připraveného pro MySQL

  2. JDBC se připojuje k databázi Oracle pomocí SSL

  3. Jak dynamicky odstraním první nebo poslední sadu řádků

  4. Získat MySQL Workbench přístup pro administraci?