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 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn kèo bóng đá pháp cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Tạo chế độ kèo bóng đá pháp

Tạo chế độ kèo bóng đá pháp - Xác định chế độ kèo bóng đá pháp mới

Synopsis

Tạo [hoặc thay thế] [Temp | Tạm thời] [đệ quy] kèo bóng đá pháptên[(Cột_name[, ...])]]view_option_name[=View_option_value] [, ...])]]Truy vấn[với [Cascaded | Cục bộ] kiểm tra tùy chọn]

Mô tả

Tạo chế độ kèo bóng đá phápXác định chế độ kèo bóng đá pháp của truy vấn. Quan điểm không được vật chất hóa.

Tạo hoặc thay thế kèo bóng đá pháplà tương tự, nhưng nếu một chế độ kèo bóng đá pháp cùng tên đã tồn tại, nó sẽ được thay thế. Truy vấn mới phải tạo cùng các cột được tạo bởi truy vấn kèo bóng đá pháp hiện có (nghĩa là cùng tên cột theo cùng một thứ tự và với cùng một loại dữ liệu), nhưng nó có thể thêm các cột bổ sung vào cuối danh sách.

Nếu một tên lược đồ được đưa ra (ví dụ:Tạo kèo bóng đá pháp myschema.myview ...) Sau đó, chế độ kèo bóng đá pháp được tạo trong lược đồ được chỉ định. Nếu không, nó được tạo ra trong lược đồ hiện tại.

tham số

tạm thờihoặcTemp

Nếu được chỉ định, chế độ kèo bóng đá pháp được tạo dưới dạng chế độ kèo bóng đá pháp tạm thời. Các chế độ kèo bóng đá pháp tạm thời được tự động bỏ vào cuối phiên hiện tại.

Nếu bất kỳ bảng nào được tham chiếu bởi chế độ kèo bóng đá pháp là tạm thời, chế độ kèo bóng đá pháp được tạo như một chế độ kèo bóng đá pháp tạm thời (cho dùtạm thờiđược chỉ định hay không).

đệ quy

Tạo chế độ kèo bóng đá pháp đệ quy. Cú pháp

Tạo chế độ kèo bóng đá pháp đệ quy [lược đồ. ]View_Name(Cột_names) Khi chọn...;

là tương đương với

Tạo chế độ kèo bóng đá pháp [lược đồ. ]View_NameNhư với đệ quyView_Name(Cột_names) như (chọn...) ChọnCột_namestừView_Name;

Danh sách tên cột kèo bóng đá pháp phải được chỉ định cho chế độ kèo bóng đá pháp đệ quy.

tên

Tên (tùy chọn Lược đồ theo trình độ) của một chế độ kèo bóng đá pháp sẽ được tạo.

Cột_name

Một danh sách tùy chọn các tên sẽ được sử dụng cho các cột của chế độ kèo bóng đá pháp. Nếu không được đưa ra, tên cột được suy ra từ truy vấn.

với (view_option_name[=View_option_value] [, ...])

Điều khoản này chỉ định các tham số tùy chọn để kèo bóng đá pháp; Các tham số sau được hỗ trợ:

Check_option(chuỗi)

Tham số này có thể làcục bộhoặcCascaded, và tương đương với chỉ địnhvới [Cascaded | Cục bộ] kiểm tra tùy chọn(kèo bóng đá pháp bên dưới). Tùy chọn này có thể được thay đổi trên các chế độ kèo bóng đá pháp hiện có bằng cách sử dụngPostgreSQL: Tài liệu: 11:.

Security_Barrier(Boolean)

Điều này nên được sử dụng nếu chế độ kèo bóng đá pháp nhằm cung cấp bảo mật cấp hàng. Nhìn thấyPhần 41.5Để biết chi tiết đầy đủ.

Truy vấn

AChọnhoặcgiá trịLệnh sẽ cung cấp các cột và hàng của chế độ kèo bóng đá pháp.

với [Cascaded | Cục bộ] kiểm tra tùy chọn

Tùy chọn này kiểm soát hành vi của các chế độ kèo bóng đá pháp có thể cập nhật tự động. Khi tùy chọn này được chỉ định,ChènCập nhậtCác lệnh trên chế độ kèo bóng đá pháp sẽ được kiểm tra để đảm bảo rằng các hàng mới thỏa mãn điều kiện xác định chế độ kèo bóng đá pháp (nghĩa là các hàng mới được kiểm tra để đảm bảo rằng chúng có thể nhìn thấy thông qua chế độ kèo bóng đá pháp). Nếu họ không, bản cập nhật sẽ bị từ chối.Tùy chọn kiểm trakhông được chỉ định,ChènCập nhậtCác lệnh trên chế độ kèo bóng đá pháp được phép tạo các hàng không hiển thị thông qua chế độ kèo bóng đá pháp. Các tùy chọn kiểm tra sau được hỗ trợ:

cục bộ

Các hàng mới chỉ được kiểm tra so với các điều kiện được xác định trực tiếp trong chính chế độ kèo bóng đá pháp. Bất kỳ điều kiện nào được xác định trên các chế độ kèo bóng đá pháp cơ sở cơ bản không được kiểm tra (trừ khi chúng cũng chỉ địnhTùy chọn kiểm tra).

Cascaded

Các hàng mới được kiểm tra so với các điều kiện của chế độ kèo bóng đá pháp và tất cả các chế độ kèo bóng đá pháp cơ sở cơ bản. NếuTùy chọn kiểm trađược chỉ định và khôngcục bộcũng khôngCascadedđược chỉ định, sau đóCascadedđược giả định.

TheTùy chọn kiểm tracó thể không được sử dụng vớiKiểu đệ quyViews.

Lưu ý rằngTùy chọn kiểm trachỉ được hỗ trợ trên các chế độ kèo bóng đá pháp có thể cập nhật tự động và không cóthay vìTriggers hoặcThay vào đóQuy tắc. Nếu chế độ kèo bóng đá pháp có thể cập nhật tự động được xác định trên đỉnh của chế độ kèo bóng đá pháp cơ sở cóthay vìTriggers, sau đó làTùy chọn kiểm tra cục bộCó thể được sử dụng để kiểm tra các điều kiện trên chế độ kèo bóng đá pháp có thể cập nhật tự động, nhưng các điều kiện trên chế độ kèo bóng đá pháp cơ sở vớithay vìTrình kích hoạt sẽ không được kiểm tra (tùy chọn kiểm tra xếp tầng sẽ không xếp tầng xuống chế độ kèo bóng đá pháp có thể kích hoạt và bất kỳ tùy chọn kiểm tra nào được xác định trực tiếp trên chế độ kèo bóng đá pháp có thể kích hoạt kích hoạt sẽ bị bỏ qua). Nếu chế độ kèo bóng đá pháp hoặc bất kỳ mối quan hệ cơ sở nào của nó cóThay vào đóquy tắc gây raChènhoặcCập nhật19584_19771Thay vào đóquy tắc.

ghi chú

Sử dụngView DropTuyên bố để bỏ chế độ kèo bóng đá pháp.

Hãy cẩn thận rằng các tên và loại của các cột của chế độ kèo bóng đá pháp sẽ được gán theo cách bạn muốn. Ví dụ:

Tạo Vista là chọn 'Hello World';

là hình thức xấu vì tên cột mặc định là? Cột?; Ngoài ra, kiểu dữ liệu cột mặc định làText, có thể không phải là những gì bạn muốn. Phong cách tốt hơn cho một chuỗi theo nghĩa đen trong kết quả của chế độ kèo bóng đá pháp là một cái gì đó như:

Tạo Vista làm văn bản 'Hello World' như Hello;

Truy cập vào các bảng được tham chiếu trong chế độ kèo bóng đá pháp được xác định bằng quyền của chủ sở hữu chế độ kèo bóng đá pháp. Trong một số trường hợp, điều này có thể được sử dụng để cung cấp quyền truy cập an toàn nhưng bị hạn chế vào các bảng cơ bản.Phần 41.5Để biết chi tiết. Các chức năng được gọi trong chế độ kèo bóng đá pháp được đối xử giống như khi chúng được gọi trực tiếp từ truy vấn bằng cách sử dụng chế độ kèo bóng đá pháp.

KhiTạo hoặc thay thế kèo bóng đá phápđược sử dụng trên chế độ kèo bóng đá pháp hiện có, chỉ có quy tắc chọn xác định của chế độ kèo bóng đá pháp được thay đổi. Các thuộc tính kèo bóng đá pháp khác, bao gồm quyền sở hữu, quyền và các quy tắc không chọn, vẫn không thay đổi.

Chế độ kèo bóng đá pháp có thể cập nhật

Chế độ kèo bóng đá pháp đơn giản có thể cập nhật tự động: Hệ thống sẽ cho phépChèn, Cập nhậtXóaCác câu lệnh được sử dụng trên chế độ kèo bóng đá pháp theo cách tương tự như trên một bảng thông thường. Một chế độ kèo bóng đá pháp có thể tự động cập nhật nếu nó thỏa mãn tất cả các điều kiện sau:

  • Chế độ kèo bóng đá pháp phải có chính xác một mục trongtừDanh sách, phải là một bảng hoặc chế độ kèo bóng đá pháp cập nhật khác.

  • Định nghĩa kèo bóng đá pháp không được chứavới, khác biệt, Nhóm bởi, , giới hạnhoặcOffsetmệnh đề ở cấp cao nhất.

  • Định nghĩa chế độ kèo bóng đá pháp không được chứa các hoạt động đã đặt (Union, Intersecthoặcngoại trừ) ở cấp cao nhất.

  • Danh sách chọn của chế độ kèo bóng đá pháp không được chứa bất kỳ tập hợp, chức năng cửa sổ hoặc các hàm quay lại.

Chế độ kèo bóng đá pháp có thể cập nhật tự động có thể chứa hỗn hợp các cột cập nhật và không thể cập nhật. Một cột có thể cập nhật nếu nó là một tham chiếu đơn giản đến một cột có thể cập nhật của mối quan hệ cơ sở cơ bản;ChènhoặcCập nhậtCâu lệnh cố gắng gán một giá trị cho nó.

Nếu chế độ kèo bóng đá pháp có thể tự động cập nhật, hệ thống sẽ chuyển đổi bất kỳ nàoChèn, Cập nhậthoặcXóaCâu lệnh trên chế độ kèo bóng đá pháp vào câu lệnh tương ứng về mối quan hệ cơ sở cơ bản.ChènCâu nói cótrên Cập nhật xung độtmệnh đề được hỗ trợ đầy đủ.

Nếu chế độ kèo bóng đá pháp có thể cập nhật tự động chứaWHEREĐiều kiện, Điều kiện hạn chế các hàng của mối quan hệ cơ sở có sẵn để được sửa đổi bởiCập nhậtXóaCâu lệnh trên chế độ kèo bóng đá pháp. Tuy nhiên, mộtCập nhậtđược phép thay đổi một hàng để nó không còn thỏa mãnWHEREĐiều kiện, và do đó không còn hiển thị thông qua chế độ kèo bóng đá pháp. Tương tự, mộtChènLệnh có khả năng chèn các hàng liên quan cơ sở không thỏa mãnWHEREĐiều kiện và do đó không hiển thị thông qua chế độ kèo bóng đá pháp (trên Cập nhật xung độtCó thể ảnh hưởng tương tự một hàng hiện tại không hiển thị thông qua chế độ kèo bóng đá pháp). TheTùy chọn kiểm tracó thể được sử dụng để ngăn chặnChènCập nhậtCác lệnh từ việc tạo các hàng như vậy không hiển thị thông qua chế độ kèo bóng đá pháp.

Nếu chế độ kèo bóng đá pháp có thể cập nhật tự động được đánh dấu bằngSecurity_BarrierThuộc tính sau đó tất cả các chế độ kèo bóng đá phápWHEREĐiều kiện (và mọi điều kiện sử dụng toán tử được đánh dấu làLeakproof) sẽ luôn được đánh giá trước mọi điều kiện mà người dùng của chế độ kèo bóng đá pháp đã thêm. Nhìn thấyPhần 41.5Để biết chi tiết đầy đủ. Lưu ý rằng, do đó, các hàng không được trả về cuối cùng (vì chúng không vượt qua người dùngWHEREĐiều kiện) vẫn có thể bị khóa.Giải thíchCó thể được sử dụng để kèo bóng đá pháp các điều kiện nào được áp dụng ở cấp độ quan hệ (và do đó không khóa các hàng) và cái nào không.

Một quan điểm phức tạp hơn không thỏa mãn tất cả các điều kiện này chỉ được đọc theo mặc định: Hệ thống sẽ không cho phép chèn, cập nhật hoặc xóa trên chế độ kèo bóng đá pháp. Bạn có thể nhận được hiệu ứng của một chế độ kèo bóng đá pháp có thể cập nhật bằng cách tạothay vìTrình kích hoạt trên chế độ kèo bóng đá pháp, phải chuyển đổi các lần chèn đã cố gắng, v.v. trên chế độ kèo bóng đá pháp thành các hành động thích hợp trên các bảng khác. Để biết thêm thông tin, kèo bóng đá phápPostgreSQL:. Một khả năng khác là tạo các quy tắc (kèo bóng đá phápPostgreSQL:), nhưng trong thực tế kích hoạt dễ hiểu và sử dụng chính xác.

Lưu ý rằng người dùng thực hiện chèn, cập nhật hoặc xóa trên chế độ kèo bóng đá pháp phải có đặc quyền chèn, cập nhật hoặc xóa đặc quyền tương ứng trên chế độ kèo bóng đá pháp. Ngoài ra, chủ sở hữu của chế độ kèo bóng đá pháp phải có các đặc quyền có liên quan về các quan hệ cơ sở cơ bản, nhưng người dùng thực hiện bản cập nhật không cần bất kỳ quyền nào đối với các quan hệ cơ sở cơ bản (kèo bóng đá phápPhần 41.5).

Ví dụ

Tạo một chế độ kèo bóng đá pháp bao gồm tất cả các bộ phim hài:

Tạo các bộ phim hài khi

Điều này sẽ tạo một chế độ kèo bóng đá pháp chứa các cột có trongphimBảng tại thời điểm tạo kèo bóng đá pháp. Mặc dù*Đã được sử dụng để tạo chế độ kèo bóng đá pháp, các cột được thêm vào sau vào bảng sẽ không phải là một phần của chế độ kèo bóng đá pháp.

Tạo chế độ kèo bóng đá pháp vớiTùy chọn kiểm tra cục bộ:

Tạo kèo bóng đá pháp Universal_comedies là

Điều này sẽ tạo chế độ kèo bóng đá pháp dựa trênHài kịchkèo bóng đá pháp, chỉ hiển thị phim vớiKind = 'Comedy'phân loại = 'u'. Mọi nỗ lực đểChènhoặcCập nhậtMột hàng trong chế độ kèo bóng đá pháp sẽ bị từ chối nếu hàng mới không cóphân loại = 'U', nhưng bộ phimKindsẽ không được kiểm tra.

Tạo chế độ kèo bóng đá pháp vớiTùy chọn kiểm tra Cascaded:

Tạo chế độ kèo bóng đá pháp pg_comedies dưới dạng

Điều này sẽ tạo một chế độ kèo bóng đá pháp kiểm tra cảKindPhân loạicủa các hàng mới.

Tạo chế độ kèo bóng đá pháp với hỗn hợp các cột cập nhật và không thể cập nhật:

Tạo các bộ phim hài khi

Chế độ kèo bóng đá pháp này sẽ hỗ trợChèn, Cập nhậtXóa. Tất cả các cột từPhimBảng sẽ có thể cập nhật, trong khi các cột được tính toánQuốc giaavg_ratingsẽ chỉ đọc.

Tạo chế độ kèo bóng đá pháp đệ quy bao gồm các số từ 1 đến 100:

Tạo chế độ kèo bóng đá pháp đệ quy công khai.nums_1_100 (n)

Lưu ý rằng mặc dù tên của chế độ kèo bóng đá pháp đệ quy là sơ đồ trong điều nàyTạo, Tự tham chiếu nội bộ của nó không đủ điều kiện lược đồ. Điều này là do tên của CTE được tạo ngầm không thể được phân loại.

Tương thích

Tạo hoặc thay thế kèo bóng đá pháplà mộtPostgreSQLMở rộng ngôn ngữ. Vì vậy, khái niệm của một quan điểm tạm thời.với (...)mệnh đề cũng là một phần mở rộng.