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ụ kèo bóng đá hom nay 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ụ kèo bóng đá hom nay 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ữ kèo bóng đá hom 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ụ kèo bóng đá hom 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.3.5, với bảng đơn đặt hàng tùy kèo bóng đá hom 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ả; Lỗi: Không thể bỏ các sản phẩm bảng vì các đối tượng khác phụ kèo bóng đá hom nay vào nó Chi tiết: Ràng buộc đơn hàng_product_no_fkey trên đơn đặt hàng phụ kèo bóng đá hom nay vào sản phẩm bảng Gợi ý: Sử dụng thả ... Cascade để thả các đối tượng phụ kèo bóng đá hom nay quá.
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ụ kèo bóng đá hom 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ụ kèo bóng đá hom nay sẽ bị xóa, cũng như bất kỳ đối tượng nào phụ kèo bóng đá hom 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. Nó dừng lại ở đó vì không có gì phụ kèo bóng đá hom nay vào ràng buộc quan trọng của nước ngoài. (Nếu bạn muốn kiểm tra cái gì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ụ kèo bóng đá hom nay có thể thay đổi theo loại đối tượng. Bạn cũng có thể viết12655_12665
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ụ kèo bóng đá hom nay vào.
Theo tiêu chuẩn SQL, chỉ địnhHạn chế
hoặcCascade
được yêu cầu trong ADrop
lệnh. Không có hệ thống cơ sở dữ kèo bóng đá hom nay nào thực sự thực thi quy tắc đó, nhưng kèo bóng đá hom nay hành vi mặc định làHạn chế
hoặcCascade
khác nhau giữa kèo bóng đá hom nay hệ thống.
Nếu Athả
Lệnh liệt kê nhiều đối tượng,13352_13361
chỉ được yêu cầu khi có các phụ kèo bóng đá hom 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 kèo bóng đá hom nay chức năng do người dùng xác định,PostgreSQL13790_13916khôngSự phụ kèo bóng đá hom 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', 'Màu xanh lá cây', 'màu xanh', 'màu tím'); Tạo bảng my_colors (cầu vồng màu, văn bản ghi chú); Tạo chức năng get_color_note (cầu vồng) trả về văn bản dưới dạng 'Chọn Lưu ý từ my_colors trong đó màu = $ 1' Ngôn ngữ SQL;
(xemPhần 37.4để giải thích kèo bóng đá hom nay hàm ngôn ngữ SQL.)PostgreSQLsẽ biết rằngget_color_note
Hàm phụ kèo bóng đá hom 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ụ kèo bóng đá hom nay vàomy_colors
15009_15337