Tạo chế độ kèo bóng đá pháp - Xác định chế độ kèo bóng đá pháp mới
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]
Tạo chế độ kèo bóng đá pháp
Xá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áp
là 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.
tạm thời
hoặ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_Name
Như với đệ quyView_Name
(Cột_names
) như (chọn...
) ChọnCột_names
từ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èn
vàCập nhật
Cá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 tra
không được chỉ định,Chèn
vàCập nhật
Cá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 tra
có thể không được sử dụng vớiKiểu đệ quy
Views.
Lưu ý rằngTùy chọn kiểm tra
chỉ đượ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èn
hoặcCập nhật
19584_19771Thay vào đó
quy tắc.
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 đơn giản có thể cập nhật tự động: Hệ thống sẽ cho phépChèn
, Cập nhật
vàXóa
Cá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
, có
, giới hạn
hoặcOffset
mệ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
, Intersect
hoặ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èn
hoặcCập nhật
Câ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ật
hoặcXóa
Câ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èn
Câu nói cótrên Cập nhật xung đột
mệ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ật
vàXóa
Câ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èn
Lệ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 đột
Có 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 tra
có thể được sử dụng để ngăn chặnChèn
vàCập nhật
Cá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_Barrier
Thuộ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ích
Có 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).
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ó trongphim
Bả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ịch
kèo bóng đá pháp, chỉ hiển thị phim vớiKind = 'Comedy'
vàphân loại = 'u'
. Mọi nỗ lực đểChèn
hoặcCập nhật
Mộ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ộ phimKind
sẽ 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ảKind
vàPhân loại
củ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ật
vàXóa
. Tất cả các cột từPhim
Bảng sẽ có thể cập nhật, trong khi các cột được tính toánQuốc gia
vàavg_rating
sẽ 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ạo hoặc thay thế kèo bóng đá pháp
là 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.