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

Làm cách nào để xóa khỏi nhiều bảng trong MySQL?

Sử dụng JOIN trong DELETE tuyên bố.

DELETE p, pa
      FROM pets p
      JOIN pets_activities pa ON pa.id = p.pet_id
     WHERE p.order > :order
       AND p.pet_id = :pet_id

Ngoài ra, bạn có thể sử dụng ...

DELETE pa
      FROM pets_activities pa
      JOIN pets p ON pa.id = p.pet_id
 WHERE p.order > :order
   AND p.pet_id = :pet_id

... để chỉ xóa khỏi pets_activities

Xem điều này .

Đối với việc xóa bảng đơn lẻ, nhưng với tính toàn vẹn tham chiếu, có những cách khác để thực hiện với EXISTS , NOT EXISTS , IN , NOT IN và v.v. Nhưng ở trên, nơi bạn chỉ định xóa bảng nào bằng bí danh trước FROM điều khoản có thể giúp bạn thoát khỏi một số điểm khá chặt chẽ dễ dàng hơn. Tôi có xu hướng liên hệ với một EXISTS trong 99% các trường hợp và sau đó có 1% trong đó cú pháp MySQL này sử dụng trong ngày.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thoát ký hiệu phần trăm theo nghĩa đen khi tùy chọn NO_BACKSLASH_ESCAPES được bật?

  2. Cách hoạt động của hàm LOWER () trong MySQL

  3. Câu lệnh SQL CASE

  4. Mytop - Một công cụ hữu ích để theo dõi hiệu suất MySQL / MariaDB trong Linux

  5. Làm thế nào để sử dụng MySQLDB SScursor một cách hiệu quả?