Khi bạn tạo các cấu trúc cơ sở dữ liệu phức tạp liên quan đến nhiều bảng có các ràng buộc, chế độ xem, kích hoạt, chức năng của nước ngoài, v.v ... Bạn hoàn toàn tạo ra một mạng phụ tỷ lệ kèo bóng đá giữa các đối tượng. Chẳng hạn, một bảng có ràng buộc khóa nước ngoài phụ tỷ lệ kèo bóng đá vào bảng mà nó tham khảo.
Để đảm bảo tính toàn vẹn của toàn bộ cấu trúc cơ sở dữ tỷ lệ kèo bóng đá,PostgreSQLĐảm bảo rằng bạn không thể bỏ các đối tượng mà các đối tượng khác vẫn phụ tỷ lệ kèo bóng đá vào. Ví dụ: cố gắng bỏ bảng sản phẩm chúng tôi đã xem xét trongPhần 5.4.5, với bảng đơn đặt hàng tùy tỷ lệ kèo bóng đá vào nó, sẽ dẫn đến một thông báo lỗi như thế này:
Sản phẩm Drop Table;
Thông báo lỗi chứa một gợi ý hữu ích: Nếu bạn không muốn làm phiền tất cả các đối tượng phụ tỷ lệ kèo bóng đá, bạn có thể chạy:
DROP BẢNG SẢN PHẨM CASCADE;
Và tất cả các đối tượng phụ tỷ lệ kèo bóng đá sẽ bị xóa, cũng như bất kỳ đối tượng nào phụ tỷ lệ kèo bóng đá vào chúng, đệ quy. Trong trường hợp này, nó không xóa bảng đơn đặt hàng, nó chỉ loại bỏ các ràng buộc khóa nước ngoài.Drop ... Cascade
sẽ làm, chạythả
không cóCascade
và đọcchi tiết
đầu ra.)
Hầu như tất cảthả
tỷ lệ kèo bóng đánh trongPostgreSQLHỗ trợ Chỉ địnhCascade
. Tất nhiên, bản chất của các phụ tỷ lệ kèo bóng đá có thể thay đổi theo loại đối tượng.Hạn chế
thay vìCascade
Để có được hành vi mặc định, đó là để ngăn chặn các đối tượng mà bất kỳ đối tượng nào khác phụ tỷ lệ kèo bóng đá vào.
tỷ lệ kèo bóng đá tiêu chuẩn SQL, chỉ địnhHạn chế
hoặcCascade
được yêu cầu trong Athả
lệnh. Không có hệ thống cơ sở dữ tỷ lệ kèo bóng đá nào thực sự thực thi quy tắc đó, nhưng tỷ lệ kèo bóng đá hành vi mặc định làHạn chế
hoặcCascade
khác nhau giữa các hệ thống.
Nếu ADrop
tỷ lệ kèo bóng đánh liệt kê nhiều đối tượng,Cascade
chỉ được yêu cầu khi có các phụ tỷ lệ kèo bóng đá bên ngoài nhóm được chỉ định. Ví dụ, khi nóiBẢNG TAB1, TAB2
Sự tồn tại của tham chiếu khóa nước ngoàiTab1
từTAB2
sẽ không có nghĩa làCascade
là cần thiết để thành công.
Đối với chức năng hoặc quy trình do người dùng xác địnhPostgreSQLTheo dõi các phụ tỷ lệ kèo bóng đá liên quan đến các tỷ lệ kèo bóng đá tính có thể nhìn nhận được của hàm, chẳng hạn như các loại đối số và kết quả của nó, nhưngkhôngSự phụ tỷ lệ kèo bóng đá chỉ có thể được biết đến bằng cách kiểm tra cơ thể chức năng. Ví dụ, hãy xem xét tình huống này:
Tạo loại cầu vồng dưới dạng enum ('đỏ', 'màu cam', 'vàng',
(xemPhần 38.5Để giải thích các hàm ngôn ngữ SQL.)PostgreSQLsẽ biết rằngget_color_note
Hàm phụ tỷ lệ kèo bóng đá vàoRainbow
Loại: Thả loại sẽ buộc bỏ chức năng, vì loại đối số của nó sẽ không còn được xác định. NhưngPostgreSQLsẽ không xem xétget_color_note
Để phụ tỷ lệ kèo bóng đá vàomy_colors
Bảng, và do đó sẽ không bỏ chức năng nếu bảng bị hủy. Mặc dù có những nhược điểm đối với phương pháp này, cũng có những lợi ích.
15177_15428
tạo chức năng get_color_note (cầu vồng) trả về văn bản
Sau đó, sự phụ tỷ lệ kèo bóng đá của hàm vàomy_colors
Bảng sẽ được biết đến và thi hành bởiDrop
.
Nếu bạn thấy bất cứ điều gì trong tài tỷ lệ kèo bóng đá không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài tỷ lệ kèo bóng đá.