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

tên

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

Synopsis

Tạo [hoặc thay thế] [Temp | Tạm thời] [đệ quy] kèo bóng đá c1tê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 đá c1Xác định chế độ kèo bóng đá c1 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 đá c1là tương tự, nhưng nếu một quan điểm 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 đá c1 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 đá c1 myschema.myview ...) Sau đó, chế độ kèo bóng đá c1 đượ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 đá c1 được tạo dưới dạng chế độ kèo bóng đá c1 tạm thời. Các chế độ kèo bóng đá c1 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 đá c1 là tạm thời, chế độ kèo bóng đá c1 được tạo như một chế độ kèo bóng đá c1 tạm thời (cho dùtạm thờiđược chỉ định hay không).

Kiểu đệ quy

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

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

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

Tạo chế độ kèo bóng đá c1 [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 đá c1 phải được chỉ định cho chế độ kèo bóng đá c1 đệ quy.

tên

Tên (tùy chọn Lược đồ theo trình độ) của một chế độ kèo bóng đá c1 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 đá c1. 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 cho chế độ kèo bóng đá c1; Các tham số sau được hỗ trợ:

Check_option(chuỗi)

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

Security_Barrier(Boolean)

Điều này nên được sử dụng nếu chế độ kèo bóng đá c1 nhằm cung cấp bảo mật cấp hàng. Nhìn thấyPhần 38.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 đá c1.

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 đá c1 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 đá c1 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 đá c1 (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 đá c1). 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 đá c1 được phép tạo các hàng không hiển thị thông qua chế độ kèo bóng đá c1. 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 đá c1. Bất kỳ điều kiện nào được xác định trên các chế độ kèo bóng đá c1 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 đá c1 và tất cả các chế độ kèo bóng đá c1 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 đệ quyLượt kèo bóng đá c1.

Lưu ý rằngTùy chọn kiểm trachỉ được hỗ trợ trên các chế độ kèo bóng đá c1 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 đá c1 có thể cập nhật tự động được xác định trên đỉnh của chế độ kèo bóng đá c1 cơ sở cóthay vìTriggers, sau đó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 đá c1 có thể cập nhật tự động, nhưng các điều kiện trên chế độ kèo bóng đá c1 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 đá c1 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 đá c1 có thể kích hoạt kích hoạt sẽ bị bỏ qua). Nếu chế độ kèo bóng đá c1 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ậtLệnh sẽ được viết lại, sau đó tất cả các tùy chọn kiểm tra sẽ bị bỏ qua trong truy vấn viết lại, bao gồm mọi kiểm tra từ các chế độ kèo bóng đá c1 có thể cập nhật tự động được xác định trên đầu mối quan hệ vớiThay vào đóquy tắc.

ghi chú

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

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 đá c1 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 theo hai cách: Tên cột mặc định là? Cột?và Kiểu dữ liệu cột mặc định làkhông xác định. Nếu bạn muốn một chuỗi theo nghĩa đen trong kết quả của chế độ kèo bóng đá c1, hãy sử dụng một cái gì đó như:

Tạo View 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 đá c1 được xác định bằng quyền của chủ sở hữu chế độ kèo bóng đá c1. 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 38.5Để biết chi tiết. Các chức năng được gọi trong chế độ kèo bóng đá c1 đượ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 đá c1.

KhiTạo hoặc thay thế kèo bóng đá c1được sử dụng trên chế độ kèo bóng đá c1 hiện có, chỉ có quy tắc chọn xác định của chế độ kèo bóng đá c1 được thay đổi. Các thuộc tính kèo bóng đá c1 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 đá c1 có thể cập nhật

Chế độ kèo bóng đá c1 đơ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 đá c1 theo cách tương tự như trên một bảng thông thường. Một chế độ kèo bóng đá c1 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 đá c1 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 đá c1 cập nhật khác.

  • Định nghĩa kèo bóng đá c1 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 đá c1 không được chứa các hoạt động đã đặt (Liên minh, Intersecthoặcngoại trừ) ở cấp cao nhất.

  • 20464_20566

Chế độ kèo bóng đá c1 có thể cập nhật tự động có thể chứa một hỗn hợp các cột cập nhật và không 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 giá trị cho nó.

Nếu chế độ kèo bóng đá c1 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 đá c1 vào câu lệnh tương ứng về mối quan hệ cơ sở cơ bản.

Nếu chế độ kèo bóng đá c1 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 đá c1. 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 đá c1. Tương tự, mộtChènLệnh có thể 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 thể nhìn thấy thông qua chế độ kèo bóng đá c1. TheKiểm tra tùy chọncó 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 đá c1.

Nếu chế độ kèo bóng đá c1 có thể cập nhật tự động được đánh dấu bằngSecurity_Barrierthuộc tính thì tất cả các chế độ kèo bóng đá c1WHEREĐiều kiện (và mọi điều kiện sử dụng các 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 đá c1 đã thêm. Nhìn thấyPhần 38.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 đá c1 đ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 đá c1. Bạn có thể nhận được hiệu ứng của một chế độ kèo bóng đá c1 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 đá c1, phải chuyển đổi các lần chèn đã cố gắng, v.v. trên chế độ kèo bóng đá c1 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 đá c1PostgreSQL:. Một khả năng khác là tạo các quy tắc (kèo bóng đá c1PostgreSQL:), 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 đá c1 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 đá c1. Ngoài ra, chủ sở hữu của chế độ kèo bóng đá c1 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 đá c1Phần 38.5).

Ví dụ

Tạo một chế độ kèo bóng đá c1 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 đá c1 chứa các cột có trongphimBảng tại thời điểm tạo kèo bóng đá c1. Mặc dù*Đã được sử dụng để tạo chế độ kèo bóng đá c1, 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 đá c1.

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

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

Điều này sẽ tạo chế độ kèo bóng đá c1 dựa trênComedieskèo bóng đá c1, 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 đá c1 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 đá c1 vớiTùy chọn kiểm tra Cascaded:

Tạo kèo bóng đá c1 pg_comedies dưới dạng

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

Tạo chế độ kèo bóng đá c1 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 đá c1 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 đá c1 đệ quy bao gồm các số từ 1 đến 100:

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

Lưu ý rằng mặc dù tên của chế độ kèo bóng đá c1 đệ 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 đá c1là APostgreSQLMở 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.