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

Odstranění z tabulky MySQL s omezením cizího klíče

Bohužel k automatickému smazání, o kterém si myslíte, že by mělo dojít, nedojde. Budete muset ručně odstranit řádky v tabulce B, které obsahují ID, z řádku v tabulce A, který chcete odstranit.

Zkuste přidat ON DELETE CASCADE na definici sloupce cizího klíče v tabulce B.

Pokud používáte Hibernate nebo nějaký jiný ORM nástroj, měl by „kaskádový“ mechanismus, který by to řešil automaticky. Ale protože zde pracujete přímo s databází, musíte mít na paměti, že řádek nelze smazat, pokud ID uvedeného řádku existuje v jakékoli jiné tabulce jako cizí klíč (jako ve vašem případě primární klíč A existuje v některé řádky v B). Pokud samozřejmě nezadáte vlastnost ON DELETE CASCADE.




  1. Nové a vyvíjející se podnikové funkce PostgreSQL s nejnovějšími verzemi

  2. mysql vyberte z n posledních řádků

  3. Oracle:jak INSERT, pokud řádek neexistuje

  4. Architektura SQL Server AlwaysOn ( Availability Group ) a instalace krok za krokem -2