9834_9873 | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | NEXT |
Tạo [hoặc thay thế] soi kèo bóng đá truoctrantênnhư trênSự kiệnđếnBảng[WHEREđiều kiện] Làm [cũng | Thay vào đó] không có gì |lệnh| (lệnh;lệnh...)
Tạo soi kèo bóng đá truoctranXác định một soi kèo bóng đá truoctran mới áp dụng cho một bảng hoặc chế độ xem được chỉ định.Tạo Hoặc thay thế soi kèo bóng đá truoctransẽ tạo soi kèo bóng đá truoctran mới hoặc thay thế soi kèo bóng đá truoctran hiện có cùng tên cho cùng một bảng.
ThePostgreSQLHệ thống soi kèo bóng đá truoctran cho phép người ta xác định một hành động thay thế được thực hiện Chèn, cập nhật hoặc xóa trong các bảng cơ sở dữ liệu. Đại khái Nói, một soi kèo bóng đá truoctran khiến các lệnh bổ sung được thực thi khi Lệnh đã cho trên một bảng nhất định được thực thi. Ngoài ra, mộtThay vào đó11932_12442Chương 36.
12487_12500ON CHỌNsoi kèo bóng đá truoctran phải được vô điều kiệnThay vào đósoi kèo bóng đá truoctran và phải có những hành động bao gồm mộtChọnlệnh. Do đó, mộttrên LỰA CHỌNsoi kèo bóng đá truoctran biến bảng thành chế độ xem một cách hiệu quả Nội dung hiển thị là các hàng được trả về bởi soi kèo bóng đá truoctranChọnlệnh thay vì bất cứ điều gì đã được Được lưu trữ trong bảng (nếu có). Nó được coi là phong cách tốt hơn để viết asoi kèo bóng đá truoctran chế độ xemLệnh hơn đến soi kèo bóng đá truoctran một bảng thực và xác định mộttrên LỰA CHỌNsoi kèo bóng đá truoctran cho nó.
Bạn có thể soi kèo bóng đá truoctran ảo giác về chế độ xem cập nhật bằng cách xác địnhtrên chèn, trên CẬP NHẬTvàKhi xóasoi kèo bóng đá truoctran (hoặc bất kỳ tập hợp con đủ cho mục đích của bạn) để thay thế Cập nhật các hành động trên chế độ xem với các bản cập nhật phù hợp về bàn. Nếu bạn muốn hỗ trợChèn Trở vềvà cứ thế, sau đó chắc chắn đặt một phù hợpTrở vềmệnh đề vào từng điều khoản này soi kèo bóng đá truoctran.
Có một sự bắt nếu bạn cố gắng sử dụng các soi kèo bóng đá truoctran có điều kiện để xem Cập nhật: CóphảiBE một điều kiện vô điều kiệnThay vào đósoi kèo bóng đá truoctran cho mỗi hành động bạn muốn cho phép trên chế độ xem. Nếu soi kèo bóng đá truoctran là có điều kiện, hoặc không phảiThay vào đó, thì hệ thống sẽ vẫn từ chối các nỗ lực để thực hiện hành động cập nhật, bởi vì nó nghĩ rằng nó có thể sẽ cố gắng thực hiện hành động trên hình nộm Bảng của quan điểm trong một số trường hợp. Nếu bạn muốn xử lý tất cả Các trường hợp hữu ích trong các soi kèo bóng đá truoctran có điều kiện, thêm một điều kiện vô điều kiệnDo thay vào đó không có gìsoi kèo bóng đá truoctran để đảm bảo rằng Hệ thống hiểu rằng nó sẽ không bao giờ được gọi để cập nhật Bảng giả. Sau đó làm cho các soi kèo bóng đá truoctran có điều kiện khôngThay vào đó; Trong trường hợp chúng được áp dụng, họ Thêm vào mặc địnhThay vào đó không có gìHành động. (Phương pháp này hiện không hoạt động để hỗ trợTrở vềTruy vấn, tuy nhiên.)
Tên của một soi kèo bóng đá truoctran để tạo. Điều này phải khác biệt với Tên của bất kỳ soi kèo bóng đá truoctran nào khác cho cùng một bảng. Nhiều các soi kèo bóng đá truoctran trên cùng một bảng và loại sự kiện tương tự được áp dụng thứ tự tên chữ cái.
Sự kiện này là một trongChọn, Chèn, Cập nhậthoặcXóa.
Tên (tùy chọn Lược đồ theo trình độ) của bảng hoặc Xem soi kèo bóng đá truoctran áp dụng cho.
anySQLcó điều kiện Biểu thức (Trả vềBoolean). Các Biểu thức điều kiện không thể tham khảo bất kỳ bảng nào ngoại trừmớivàcũ, và không thể chứa tổng hợp chức năng.
Thay vào đóchỉ ra rằng Các lệnh phải được thực thiThay vìBản gốc yêu cầu.
cũngchỉ ra rằng Các lệnh phải được thực thiNgoàiBản gốc yêu cầu.
nếu khôngcũng16579_16586Thay vào đóđược chỉ định,Ngoài ralà mặc định.
lệnh hoặc lệnh tạo nên hành động soi kèo bóng đá truoctran. Các lệnh hợp lệ làChọn, Chèn, Cập nhật, XóahoặcThông báo.
trongđiều kiệnvàlệnh, Tên bảng đặc biệtnewvàcũCó thể được sử dụng để tham khảo các giá trị trong bảng được tham chiếu.mớicó giá trị trongKhi chènvàtrên cập nhậtsoi kèo bóng đá truoctran tham khảo cái mới hàng được chèn hoặc cập nhật.cũIS hợp lệ trong17589_17600vàKhi xóasoi kèo bóng đá truoctran tham khảo hàng hiện tại đã cập nhật hoặc xóa.
Bạn phải là chủ sở hữu của bảng để tạo hoặc thay đổi soi kèo bóng đá truoctran cho Nó.
Trong soi kèo bóng đá truoctran choChèn, Cập nhậthoặcXóaTrên a Xem, bạn có thể thêm mộtTrở vềmệnh đề Điều đó phát ra các cột của chế độ xem. Điều khoản này sẽ được sử dụng để Tính toán đầu ra nếu soi kèo bóng đá truoctran được kích hoạt bởiChèn trả về, Cập nhật Trở vềhoặcXóa trả vềLệnh tương ứng. Khi soi kèo bóng đá truoctran được kích hoạt bởi một lệnh không cóTrở về, soi kèo bóng đá truoctranTrở vềmệnh đề sẽ bị bỏ qua. Hiện tại Việc triển khai chỉ cho phép vô điều kiệnThay vào đósoi kèo bóng đá truoctran để chứaTrở về; Hơn nữa có thể có nhiều nhất mộtTrở về18727_18828Trở vềmệnh đề được sử dụng để tính toán kết quả.)Trở vềTruy vấn trên Xem sẽ bị từ chối nếu không cóTrở vềmệnh đề trong bất kỳ soi kèo bóng đá truoctran có sẵn nào.
Điều rất quan trọng là phải cẩn thận để tránh các soi kèo bóng đá truoctran tròn. Vì Ví dụ, mặc dù hai định nghĩa soi kèo bóng đá truoctran sau đây là Được chấp nhận bởiPostgreSQL, TheChọnlệnh sẽ gây raPostgreSQLĐể báo cáo lỗi vì mở rộng đệ quy của một soi kèo bóng đá truoctran:
Tạo soi kèo bóng đá truoctran "_return" như Trên chọn T1 Làm thay thế Chọn * từ T2; Tạo soi kèo bóng đá truoctran "_return" như Trên chọn T2 Làm thay thế Chọn * từ T1; Chọn * từ T1;
Hiện tại, nếu một hành động soi kèo bóng đá truoctran có chứaThông báolệnh, TheThông báolệnh sẽ được thực thi vô điều kiện, đó là,Thông báosẽ được ban hành thậm chí Nếu không có bất kỳ hàng nào mà soi kèo bóng đá truoctran nên áp dụng cho. Vì Ví dụ, trong:
Tạo soi kèo bóng đá truoctran thông báo_me như khi cập nhật cho mytable cũng thông báo cho mytable; Cập nhật myTable set name = 'foo' trong đó id = 42;
mộtThông báoSự kiện sẽ được gửi trong TheCập nhật, Cho dù có bất kỳ hàng phù hợp với điều kiệnid = 42. Đây là một hạn chế thực hiện có thể được sửa chữa trong phát hành trong tương lai.