Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

5.14. Theo dõi phụ tỷ lệ kèo bóng đá

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 ... Cascadesẽ làm, chạythảkhông cóCascadevà đọ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.

Lưu ý

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ặcCascadekhác nhau giữa các hệ thống.

Nếu ADroptỷ lệ kèo bóng đánh liệt kê nhiều đối tượng,Cascadechỉ đượ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, TAB2Sự tồn tại của tham chiếu khóa nước ngoàiTab1từTAB2sẽ không có nghĩa làCascadelà 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_noteHàm phụ tỷ lệ kèo bóng đá vàoRainbowLoạ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_colorsBả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_colorsBảng sẽ được biết đến và thi hành bởiDrop.

Gửi hiệu chỉnh

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 đá.