10760_11043
Để đả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 đá tối nay,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 đá tối nay 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 đá tối nay vào nó, sẽ dẫn đến một thông báo lỗi như thế này:
Sản phẩm Bàn thả;
Thông báo lỗi chứa một gợi ý hữu ích: Nếu bạn không muốn bận tâm xóa tất cả các đối tượng phụ tỷ lệ kèo bóng đá tối nay, 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 đá tối nay sẽ bị xóa, cũng như bất kỳ đối tượng nào phụ tỷ lệ kèo bóng đá tối nay 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ả
lệnh trongPostgreSQLHỗ trợ Chỉ địnhCascade
. Tất nhiên, bản chất của các phụ tỷ lệ kèo bóng đá tối nay 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 đá tối nay vào.
tỷ lệ kèo bóng đá tối nay 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 đá tối nay nào thực sự thực thi quy tắc đó, nhưng tỷ lệ kèo bóng đá tối nay hành vi mặc định làHạn chế
hoặcCascade
khác nhau giữa các hệ thống.
Nếu Athả
Lệ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 đá tối nay bên ngoài nhóm được chỉ định. Ví dụ, khi nóiTab Drop 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 các chức năng do người dùng xác định,PostgreSQLTheo dõi các phụ tỷ lệ kèo bóng đá tối nay được liên kết với các tỷ lệ kèo bóng đá tối nay 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 đá tối nay 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 ('đỏ', 'cam', 'vàng',
(xemPhần 37.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 đá tối nay 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 đá tối nay 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.