Mysql
 sql >> база данни >  >> RDS >> Mysql

Изтриване от MySQL таблица с ограничения на външния ключ

За съжаление, автоматичното изтриване, което смятате, че трябва да се случи, не се случва. Ще трябва ръчно да изтриете редовете в таблица B, които съдържат идентификатора от реда в таблица A, който искате да премахнете.

Опитайте да добавите ON DELETE CASCADE към дефиницията на колоната ви за външен ключ в таблица Б.

Ако използвате Hibernate или някакъв друг ORM инструмент, той ще има "каскаден" механизъм, който ще се справи с това автоматично. Но тук, тъй като се свързвате директно с базата данни, трябва да имате предвид, че ред не може да бъде изтрит, ако идентификаторът на споменатия ред съществува в която и да е друга таблица като външен ключ (както във вашия случай, първичният ключ на A съществува в някои от редовете в B). Освен ако, разбира се, не посочите свойството ON DELETE CASCADE.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да използвате канонични функции в Entity Framework и Mysql

  2. Клониране на MySQL база данни

  3. Филтриране по псевдоним в mysql

  4. Групиране на множество Mysql оператори за извличане на броя на множество състояния

  5. Най-добрата практика на bulk_create за масивни записи