PostgreSQL | ||
---|---|---|
prev | Tiếp theo |
Tạo soi kèo bóng đá truoctrantênnhư trênSự kiệnđếnĐối tượng[WHEREđiều kiện] Làm [thay vào đó] [hành động| KHÔNG CÓ GÌ ]
Tên của một soi kèo bóng đá truoctran để tạo.
Sự kiện là một trong nhữngChọn, Cập nhật, XóahoặcChèn.
Đối tượng làBảnghoặcBảng.Cột.
Bất kỳ SQL WHERE mệnh đề.mớihoặchiện tạicó thể xuất hiện thay vì biến thể bất cứ khi nào một biến thể hiện là cho phép trong sql.
bất kỳ câu lệnh SQL nào.mớihoặchiện tạicó thể xuất hiện thay vì biến thể bất cứ khi nào một biến thể hiện là cho phép trong sql.
Tin nhắn được trả về nếu soi kèo bóng đá truoctran là thành công tạo.
ngữ nghĩa của một soi kèo bóng đá truoctran là tại thời điểm một cá nhân ví dụ được truy cập, cập nhật, chèn hoặc xóa, có một phiên bản hiện tại (để truy xuất, cập nhật và xóa) và một phiên bản mới ví dụ (để cập nhật và nối thêm). NếuSự kiệnĐược chỉ định trong mệnh đề AN vàđiều kiệnđược chỉ định trong nơi mệnh đề đúng với thể hiện hiện tại,Hành độngMột phần của soi kèo bóng đá truoctran được thực thi. Đầu tiên, Tuy nhiên, các giá trị từ các trường trong trường hợp hiện tại và/hoặc phiên bản mới được thay thế chohiện tại.tên thuộc tínhvàmới.tên thuộc tính.
TheHành độngmột phần của soi kèo bóng đá truoctran thực thi với cùng một lệnh và định danh giao dịch như lệnh người dùng gây ra kích hoạt.
Một cảnh báo về các soi kèo bóng đá truoctran SQL là theo thứ tự. Nếu cùng một lớp Tên hoặc biến thể hiện xuất hiện trongSự kiện, Theđiều kiệnvàHành độngcác phần của một soi kèo bóng đá truoctran, tất cả chúng đều là được coi là các biến tuple khác nhau. Chính xác hơn,newvàhiện tạilà các biến Tuple duy nhất là chia sẻ giữa các điều khoản này. Ví dụ: hai phần sau Các soi kèo bóng đá truoctran có cùng ngữ nghĩa:
trên bản cập nhật lên emp.salary trong đó emp.name = "joe" Không cập nhật emp (...) trong đó ...
Cập nhật lên emp-1.Salary trong đó emp-2.name = "Joe" Cập nhật emp-3 (...) trong đó ...Mỗi soi kèo bóng đá truoctran có thể có thẻ tùy chọn thay thế. Không có điều này nhãn,hành độngsẽ được thực hiện trong bổ sung vào lệnh người dùng khiSự kiệntrongđiều kiệnMột phần của soi kèo bóng đá truoctran xảy ra. Xen kẽ,Hành độngPhần sẽ được thực hiện thay vì Lệnh người dùng. Trong trường hợp này sau này,Hành độngcó thể là từ khóaKhông có gì.
Khi chọn giữa các hệ thống soi kèo bóng đá truoctran viết lại và phiên bản Đối với một ứng dụng soi kèo bóng đá truoctran cụ thể, hãy nhớ rằng trong bản viết lại hệ thống,hiện tạiđề cập đến một mối quan hệ và một số vòng loại trong khi trong hệ thống ví dụ mà nó đề cập đến một thể hiện (tuple).
Điều rất quan trọng cần lưu ý là hệ thống soi kèo bóng đá truoctran viết lại sẽ không phát hiện cũng không xử lý các soi kèo bóng đá truoctran tròn. Ví dụ, mặc dù hai định nghĩa soi kèo bóng đá truoctran sau đây được chấp nhận quaPostgres, Truy xuất lệnh sẽ gây raPostgresđến tai nạn:
Ví dụ 14-1. Ví dụ về viết lại tròn sự kết hợp soi kèo bóng đá truoctran.
Tạo soi kèo bóng đá truoctran BAD_RULE_COMBINION_1 AS Trên chọn vào EMP Thay vào đó chọn Toyemp;
Tạo soi kèo bóng đá truoctran BAD_RULE_COMBINION_2 AS Trên chọn Toyemp Thay vào đó chọn để emp;
Cố gắng lấy từ EMP sẽ gây raPostgresđể gặp sự cố.
Chọn * từ EMP;
Bạn phải có quyền truy cập định nghĩa soi kèo bóng đá truoctran vào một lớp để Xác định một soi kèo bóng đá truoctran về nó. Sử dụngGrantvàthu hồiĐể thay đổi soi kèo bóng đá truoctranền.
Làm cho Sam có được điều chỉnh lương giống như Joe:
Tạo soi kèo bóng đá truoctran example_1 AS Trên Cập nhật EMP.Salary WHERE hiện tại.name = "Joe" DO CẬP NHẬT EMP (Mức lương = new.salary) WHERE EMP.NAME = "SAM";Tại thời điểm đó, Joe nhận được điều chỉnh lương, sự kiện sẽ trở thành sự thật và ví dụ hiện tại của Joe và đề xuất trường hợp mới có sẵn cho các thói quen thực thi. Do đó, mức lương mới của anh ấy là được thay thế vào phần hành động của soi kèo bóng đá truoctran sau đó thực hiện. Điều này tuyên bố tiền lương của Joe lên Sam.
Làm cho Bill nhận tiền lương của Joe khi được truy cập:
Tạo soi kèo bóng đá truoctran example_2 AS Trên chọn vào emp.salary Trong đó hiện tại.name = "Bill" Làm thay thế Chọn (emp.salary) từ EMP WHERE EMP.NAME = "Joe";
Từ chối Joe truy cập vào mức lương của nhân viên trong giày phòng (current_userTrả về Tên của người dùng hiện tại):
Tạo soi kèo bóng đá truoctran example_3 AS Trên chọn vào emp.salary Trong đó hiện tại.dept = "giày" và current_user = "joe" Thay vào đó không có gì;
soi kèo bóng đá truoctran một cái nhìn của các nhân viên làm việc trong đồ chơi phòng.
Tạo Toyemp (name = char16, tiền lương = int4); Tạo soi kèo bóng đá truoctran example_4 as Trên chọn Toyemp Làm thay thế Chọn (emp.name, emp.salary) từ EMP WHERE EMP.DEPT = "Đồ chơi";
Tất cả nhân viên mới phải kiếm được 5.000 hoặc ít hơn
Tạo soi kèo bóng đá truoctran example_5 AS Trên trơ với EMP nơi New.Salary 5000 DO CẬP NHẬT TANSET Mức lương = 5000;
đối tượng trong ASQLsoi kèo bóng đá truoctran không thể là một tham chiếu mảng và không thể có tham số.
Ngoài trường "OID", các thuộc tính hệ thống không thể tham chiếu bất cứ nơi nào trong một soi kèo bóng đá truoctran. Trong số những thứ khác, điều này có nghĩa là đó là các chức năng của các trường hợp (ví dụ: "foo (emp)"ở đâu"EMP"IS một lớp) không thể được gọi ở bất cứ đâu trong một soi kèo bóng đá truoctran.
Hệ thống soi kèo bóng đá truoctran lưu trữ các kế hoạch văn bản và truy vấn soi kèo bóng đá truoctran dưới dạng văn bản thuộc tính. Điều này ngụ ý rằng việc tạo ra các soi kèo bóng đá truoctran có thể thất bại nếu soi kèo bóng đá truoctran cộng với các biểu diễn nội bộ khác nhau của nó vượt quá một số giá trị Đó là trên thứ tự của một trang (8kb).
Tạo soi kèo bóng đá truoctranCâu lệnh làPostgresPhần mở rộng ngôn ngữ.
Không cóTạo soi kèo bóng đá truoctrancâu lệnh trongSQL92.