Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

[MySQL]:XÓA các hàng khỏi hai bảng phụ thuộc

Bạn không thể xóa khỏi bảng miễn là các bản ghi phụ thuộc vẫn tồn tại trong bảng khác. Trong trường hợp của bạn, sự phụ thuộc diễn ra như thế này

Transaction <- Purchase -> Item

Vì vậy, trước tiên bạn cần xóa mọi giao dịch mua trước khi có thể xóa giao dịch.

Để thay thế cho cách tiếp cận hai bước đó, tôi khuyên bạn nên thiết lập ON DELETE CASCADE ràng buộc và đi với điều này:

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>
  )

Lưu ý rằng thao tác này sẽ xóa mọi Transaction (và thông qua CASCADE, bất kỳ Purchase ) nơi có Item phụ thuộc với Client_ID phù hợp , bất kể có bất kỳ khác các mục trong đó. Nếu đây không phải là điều bạn muốn, câu hỏi cần được tinh chỉnh.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. In dữ liệu trong ResultSet cùng với tên cột

  2. Bỏ qua 'lượt xem' trong bản sao lưu db mysql bằng cách sử dụng mysqldump

  3. Cấu hình CentOs Php và MySql

  4. Làm cách nào để gọi các thủ tục lưu trữ MySQL từ Perl?

  5. lỗi di chuyển php Artian:nodename hoặc servname được cung cấp hoặc không biết