Mysql
 sql >> Baza danych >  >> RDS >> Mysql

[MySQL]:USUŃ wiersze z dwóch zależnych tabel

Nie można usunąć z tabeli, dopóki rekordy zależne nadal istnieją w innej tabeli. W twoim przypadku zależność wygląda tak

Transaction <- Purchase -> Item

Musisz więc najpierw usunąć wszystkie zakupy, zanim będziesz mógł usunąć transakcje.

Jako alternatywę dla tego dwuetapowego podejścia, polecam utworzenie ON DELETE CASCADE ograniczenie i idź z tym:

DELETE 
  Transaction 
WHERE 
  Transaction_ID IN (
    SELECT 
      Transaction_ID 
    FROM
      Purchase INNER JOIN Item ON Item.Item_ID = Purchase.Item_ID
    WHERE
      Item.Client_ID = <your Client ID here>
  )

Uważaj, ponieważ spowoduje to usunięcie wszelkich Transaction (i, poprzez CASCADE, każdy Purchase ) gdzie istnieje zależny Item z pasującym Client_ID , niezależnie od tego, czy są jakieś inne elementy w nim. Jeśli nie tego chcesz, pytanie wymaga doprecyzowania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować dane Blob w MYSQL na Android ImageView

  2. używanie wartości null w przygotowanym oświadczeniu mysqli

  3. ORDER BY NULL w MySQL

  4. Jak mogę wstawić dane do bazy danych MySQL?

  5. Brak mysql.sock; otrzymując OperationalError:(2002, Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/tmp/mysql.sock' (2))