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

Xóa khỏi bảng MySQL có ràng buộc khóa ngoại

Thật không may, việc xóa tự động mà bạn nghĩ nên xảy ra đã không xảy ra. Bạn cần phải xóa thủ công các hàng trong Bảng B có chứa ID khỏi hàng trong Bảng A mà bạn muốn xóa.

Thử thêm BẬT XÓA CASCADE vào định nghĩa cột khóa ngoại của bạn trong Bảng B.

Nếu bạn đang sử dụng Hibernate hoặc một số công cụ ORM khác, nó sẽ có một cơ chế "thác" để xử lý việc này một cách tự động. Nhưng ở đây vì bạn đang giao tiếp trực tiếp với cơ sở dữ liệu, bạn phải lưu ý rằng một hàng không thể bị xóa nếu ID của hàng đã nói tồn tại trong bất kỳ bảng nào khác dưới dạng khóa ngoại (như trong trường hợp của bạn, khóa chính của A tồn tại trong một số hàng trong B). Tất nhiên, trừ khi bạn chỉ định thuộc tính 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. Làm thế nào để hoán đổi giá trị của hai hàng trong MySQL mà không vi phạm ràng buộc duy nhất?

  2. Kiểm tra x ngày liên tiếp - dấu thời gian đã cho trong cơ sở dữ liệu

  3. Chọn các giá trị từ danh sách không có trong bảng

  4. Làm cách nào để đặt dấu gạch ngược vào tên cột được gọi là khóa cho chế độ ngủ đông

  5. Khóa ngoại cho nhiều bảng và cột?