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

PostgreSQL:NGOẠI KHÓA / ON XÓA CASCADE

Khóa ngoại có xóa theo tầng nghĩa là nếu một bản ghi trong bảng mẹ bị xóa, thì các bản ghi tương ứng trong bảng con sẽ tự động bị xóa. Đây được gọi là xóa theo tầng.

Bạn đang nói ngược lại, đây không phải là khi bạn xóa khỏi bảng con thì các bản ghi sẽ bị xóa khỏi bảng mẹ.

UPDATE 1:

BẬT XÓA CASCADE là chỉ định xem bạn có muốn xóa các hàng trong bảng con khi các hàng tương ứng bị xóa trong bảng mẹ hay không. Nếu bạn không chỉ định xóa theo tầng, hành vi mặc định của máy chủ cơ sở dữ liệu sẽ ngăn bạn xóa dữ liệu trong bảng nếu các bảng khác tham chiếu đến nó.

Nếu bạn chỉ định tùy chọn này, sau này khi bạn xóa một hàng trong bảng mẹ, máy chủ cơ sở dữ liệu cũng xóa bất kỳ hàng nào được liên kết với hàng đó (khóa ngoại) trong bảng con. Ưu điểm chính của tính năng xóa xếp tầng là nó cho phép bạn giảm số lượng câu lệnh SQL mà bạn cần để thực hiện các hành động xóa.

Vì vậy, đó là tất cả về những gì sẽ xảy ra khi bạn xóa các hàng khỏi bảng Gốc chứ không phải khỏi bảng con.

Vì vậy, trong trường hợp của bạn khi người dùng xóa các mục từ bảng CATs thì các hàng sẽ bị xóa khỏi bảng sách. :)

Hy vọng điều này sẽ giúp bạn :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. danh sách lược đồ với các kích thước (tương đối và tuyệt đối) trong cơ sở dữ liệu PostgreSQL

  2. Bản sao Londiste với PostgreSQL 9.0

  3. Truy xuất tất cả các đặc quyền đối tượng cho vai trò cụ thể

  4. Cách xác định khóa chính được tạo tự động được sử dụng làm khóa ngoại cho một bảng khác

  5. Cách cấp tất cả các đặc quyền về chế độ xem cho người dùng tùy ý