sql >> Databasteknik >  >> RDS >> Mysql

Ta bort från en MySQL-tabell med begränsningar för främmande nyckel

Tyvärr sker inte den automatiska raderingen som du tror ska ske. Du måste manuellt ta bort raderna i Tabell B som innehåller ID:t från raden i Tabell A som du vill ta bort.

Testa att lägga till ON DELETE CASCADE till din kolumndefinition för främmande nyckel i Tabell B.

Om du använder Hibernate, eller något annat ORM-verktyg, skulle det ha en "kaskad"-mekanism som skulle hantera detta automatiskt. Men eftersom du använder databasen direkt, måste du komma ihåg att en rad inte kan raderas om ID:t för den raden finns i någon annan tabell som en främmande nyckel (som i ditt fall, primärnyckeln till A finns i några av raderna i B). Såvida du inte anger egenskapen ON DELETE CASCADE.




  1. Throwback in datum utan helger

  2. Min DBA är sjuk - Databas Failover Tips för SysAdmins

  3. Intelligent MySQL GROUP BY för aktivitetsströmmar

  4. Ladda upp bild till servern och lagra bildsökvägen i mysql-databasen