khai kèo bóng đá cúp c2tên[nhị phân] [không nhạy cảm] [[không] cuộn] kèo bóng đá cúp c2 trỏ [với | Không có giữ] choTruy vấn
khai kèo bóng đá cúp c2Cho phép người dùng tạo kèo bóng đá cúp c2 trỏ, có thể được sử dụng để lấy một số lượng nhỏ các hàng tại một thời gian ra khỏi một truy vấn lớn hơn. Sau khi kèo bóng đá cúp c2 trỏ được tạo, các hàng được lấy từ nó bằng cách sử dụngFetch.
Lưu ý:Trang này mô tả việc sử dụng kèo bóng đá cúp c2 trỏ tại Cấp lệnh SQL. Nếu bạn đang cố gắng sử dụng kèo bóng đá cúp c2 trỏ bên trongPL/PGSQLHàm, các quy tắc khác nhau - xemPostgreSQL: Tài.
Tên của kèo bóng đá cúp c2 trỏ sẽ được tạo.
khiến kèo bóng đá cúp c2 trỏ trả lại dữ liệu trong nhị phân chứ không phải ở định dạng văn bản.
Cho biết dữ liệu được lấy từ kèo bóng đá cúp c2 trỏ phải Không bị ảnh hưởng bởi các bản cập nhật cho (các) bảng bên dưới kèo bóng đá cúp c2 trỏ xảy ra sau khi kèo bóng đá cúp c2 trỏ được tạo ra. TRONGPostgreSQL, Đây là mặc định hành vi; Vì vậy, từ khóa này không có hiệu lực và chỉ là được chấp nhận để tương thích với tiêu chuẩn SQL.
cuộn12466_12665cuộncó thể áp dụng hình phạt hiệu suất thời gian thực hiện của truy vấn.Không CuộnChỉ định rằng kèo bóng đá cúp c2 trỏ không thể được sử dụng để Lấy các hàng theo kiểu không sau. Mặc định là Cho phép cuộn trong một số trường hợp; Điều này không giống như Chỉ địnhcuộn. Nhìn thấyghi chúĐể biết chi tiết.
với giữChỉ định rằng kèo bóng đá cúp c2 trỏ có thể tiếp tục được sử dụng sau khi giao dịch đã tạo nó thành công cam kết.không giữChỉ định rằng kèo bóng đá cúp c2 trỏ không thể được sử dụng bên ngoài giao dịch đã tạo ra nó. Nếu khôngkhông giữNorvới giữđược chỉ định,không giữlà mặc định.
AChọnhoặcGiá trịlệnh sẽ cung cấp Hàng được trả lại bởi kèo bóng đá cúp c2 trỏ.
Các từ khóanhị phân, Không nhạy cảmvàcuộnCó thể xuất hiện theo bất kỳ thứ tự nào.
kèo bóng đá cúp c2 trỏ bình thường trả về dữ liệu ở định dạng văn bản, giống như AChọnsẽ sản xuất. Thenhị phântùy chọn Chỉ định rằng kèo bóng đá cúp c2 trỏ nên Trả về dữ liệu ở định dạng nhị phân. Điều này làm giảm nỗ lực chuyển đổi cho Cả máy chủ và máy khách, với chi phí của nhiều nỗ lực của lập trình viên để đối phó với các định dạng dữ liệu nhị phân phụ thuộc vào nền tảng. Như một Ví dụ, nếu một truy vấn trả về giá trị của một từ một số nguyên cột, bạn sẽ nhận được một chuỗi1với một kèo bóng đá cúp c2 trỏ mặc định, trong khi với kèo bóng đá cúp c2 trỏ nhị phân, bạn sẽ nhận được Trường 4 byte chứa biểu diễn bên trong của giá trị (theo thứ tự byte lớn).
kèo bóng đá cúp c2 trỏ nhị phân nên được sử dụng cẩn thận. Nhiều ứng dụng, bao gồmPSQL, không được chuẩn bị Để xử lý kèo bóng đá cúp c2 trỏ nhị phân và mong đợi dữ liệu sẽ quay lại trong văn bản định dạng.
Lưu ý:Khi ứng dụng máy khách sử dụng"Truy vấn mở rộng"Giao thức phát hành MộtFetchlệnh, giao thức liên kết thông kèo bóng đá cúp c2 chỉ định xem dữ liệu có được truy xuất trong văn bản hay không Định dạng nhị phân. Sự lựa chọn này ghi đè theo cách mà con trỏ được xác định. Khái niệm về một con trỏ nhị phân như vậy là như vậy là lỗi thời khi sử dụng giao thức truy vấn mở rộng - bất kỳ con trỏ nào cũng có thể được coi là văn bản hoặc nhị phân.
trừ khivới giữđược chỉ định, kèo bóng đá cúp c2 trỏ được tạo bởi lệnh này chỉ có thể được sử dụng trong giao dịch hiện tại. Do đó,khai kèo bóng đá cúp c2không cóvới giữlà vô dụng bên ngoài A Khối giao dịch: kèo bóng đá cúp c2 trỏ chỉ tồn tại đến hoàn thành tuyên bố. Vì thếPostgreSQLkèo bóng đá cúp c2 cáo lỗi nếu như vậy Lệnh được sử dụng bên ngoài một khối giao dịch. Sử dụngBắt đầuvàcam kết(hoặcrollback) để xác định giao dịch khối.
nếuvới giữđược chỉ định và giao dịch tạo ra kèo bóng đá cúp c2 trỏ cam kết thành công, kèo bóng đá cúp c2 trỏ có thể tiếp tục được truy cập bằng các giao dịch tiếp theo trong cùng một phiên. (Nhưng nếu giao dịch tạo bị hủy bỏ, kèo bóng đá cúp c2 trỏ được gỡ bỏ.) Một kèo bóng đá cúp c2 trỏ được tạo bằngvới giữđược đóng khi rõ ràngĐóngLệnh được cấp trên đó hoặc phiên kết thúc. Trong triển kèo bóng đá cúp c2 hiện tại, các hàng được đại diện bởi một con trỏ được giữ được sao chép vào một tệp tạm thời hoặc vùng bộ nhớ nên rằng chúng vẫn có sẵn cho các giao dịch tiếp theo.
với giữcó thể không được chỉ định khi Truy vấn bao gồmđể cập nhậthoặcđể chia sẻ.
ThecuộnTùy chọn phải được chỉ định Khi xác định một kèo bóng đá cúp c2 trỏ sẽ được sử dụng để tìm nạp ngược. Cái này được yêu cầu bởi tiêu chuẩn SQL. Tuy nhiên, để tương thích với Các phiên bản trước,PostgreSQLsẽ cho phép tìm nạp ngược mà không cầncuộn, Nếu kế hoạch truy vấn của kèo bóng đá cúp c2 trỏ rất đơn giản Đủ để không cần thêm chi phí để hỗ trợ nó. Tuy nhiên, Các nhà phát triển ứng dụng được khuyên không nên dựa vào việc sử dụng lạc hậu Lấy từ một kèo bóng đá cúp c2 trỏ chưa được tạo bằngcuộn. Nếu nhưKhông có cuộnIS được chỉ định, sau đó tìm nạp ngược không được phép trong mọi trường hợp.
Fetches lùi cũng không được phép khi truy vấn bao gồmđể cập nhậthoặccho CHIA SẺ; Vì vậycuộncó thể không được chỉ định trong trường hợp này.
THẬN TRỌNG |
Có thể cuộn vàvới giữkèo bóng đá cúp c2 trỏ có thể cho kết quả không mong muốn nếu họ gọi bất kỳ Các chức năng dễ bay hơi (xemPhần 35.6). Khi a Hàng được tìm nạp trước đó được tìm nạp lại, các chức năng có thể được thực hiện lại, có lẽ dẫn đến kết quả khác với lần đầu tiên. Một cách giải quyết cho những trường hợp như vậy là Tuyên bố kèo bóng đá cúp c2 trỏvới giữvà Cam kết giao dịch trước khi đọc bất kỳ hàng từ nó. Điều này sẽ buộc toàn bộ đầu ra của kèo bóng đá cúp c2 trỏ phải vật chất hóa trong việc lưu trữ tạm thời, do đó Các chức năng được thực thi chính xác một lần cho mỗi hàng. |
Nếu truy vấn của kèo bóng đá cúp c2 trỏ bao gồmcho CẬP NHẬThoặcđể chia sẻ, sau đó trả lại Hàng bị khóa vào thời điểm chúng được lấy đầu tiên, trong cùng một cách cho một thông thườngChọnlệnh với các tùy chọn này. Ngoài ra, các hàng được trả lại sẽ là hầu hết các phiên bản cập nhật; Do đó, các tùy chọn này cung cấp tương đương với những gì tiêu chuẩn SQL gọi là"kèo bóng đá cúp c2 trỏ nhạy cảm". (Chỉ địnhKhông nhạy cảmcùng vớicho CẬP NHẬThoặcđể chia sẻlà một lỗi.)
THẬN TRỌNG |
Người ta thường nên sử dụngđể cập nhậtNếu kèo bóng đá cúp c2 trỏ được dự định được sử dụng vớiCập nhật ... nơi hiện tại CỦAhoặcXóa ... nơi hiện tại CỦA. Sử dụngđể cập nhậtNgăn chặn các phiên khác thay đổi các hàng giữa Thời gian chúng được tìm nạp và thời gian chúng được cập nhật. Không cóđể cập nhật, sau đótrong đó hiện tại củalệnh sẽ không có tác dụng nếu hàng được thay đổi vì kèo bóng đá cúp c2 trỏ đã được tạo. Một lý do khác để sử dụngcho CẬP NHẬTCó phải không có nó, sau đótrong đó hiện tại củaCó thể thất bại nếu kèo bóng đá cúp c2 trỏ Truy vấn không đáp ứng các quy tắc của tiêu chuẩn SQL vì"Simply Updatable"(trong đặc biệt, kèo bóng đá cúp c2 trỏ phải tham khảo chỉ một bảng và không sử dụng nhóm hoặcĐặt hàng bởi). kèo bóng đá cúp c2 trỏ không chỉ đơn giản là có thể cập nhật có thể hoạt động hoặc có thể không, tùy thuộc vào chi tiết lựa chọn kế hoạch; Vì vậy, trong trường hợp xấu nhất, một ứng dụng có thể hoạt động trong thử nghiệm và sau đó thất bại trong sản xuất. Lý do chính không sử dụngcho CẬP NHẬTvớinơi hiện tại CỦAlà nếu bạn cần con trỏ có thể cuộn hoặc để không nhạy cảm với các bản cập nhật tiếp theo (nghĩa là, Tiếp tục hiển thị dữ liệu cũ). Nếu đây là một yêu cầu, Trả tiền gần với các cảnh kèo bóng đá cúp c2 được hiển thị ở trên. |
Tiêu chuẩn SQL chỉ đưa ra các điều khoản cho kèo bóng đá cúp c2 trỏ trong nhúngSQL. ThePostgreSQLMáy chủ không triển kèo bóng đá cúp c2MởTuyên bố cho kèo bóng đá cúp c2 trỏ; Một kèo bóng đá cúp c2 trỏ là được coi là mở khi nó được tuyên bố. Tuy nhiên,ECPG, Bộ tiền xử lý SQL được nhúng choPostgreSQL, hỗ trợ Các quy ước kèo bóng đá cúp c2 trỏ SQL tiêu chuẩn, bao gồm các quy ước liên quan đếnkhai kèo bóng đá cúp c2vàMởcâu lệnh.
Bạn có thể thấy tất cả các kèo bóng đá cúp c2 trỏ có sẵn bằng cách truy vấnPG_CURSORSChế độ xem hệ thống.
Để khai kèo bóng đá cúp c2 con trỏ:
Khai kèo bóng đá cúp c2 con trỏ Liahona cho Chọn * từ phim;
xemFetchĐể biết thêm ví dụ về sử dụng kèo bóng đá cúp c2 trỏ.
Tiêu chuẩn SQL nói rằng nó phụ thuộc vào việc thực hiện Liệu kèo bóng đá cúp c2 trỏ có nhạy cảm với các bản cập nhật đồng thời của Dữ liệu cơ bản theo mặc định. TRONGPostgreSQL, kèo bóng đá cúp c2 trỏ không nhạy cảm bởi mặc định và có thể được thực hiện nhạy cảm bằng cách chỉ địnhđể cập nhật. Các sản phẩm khác có thể hoạt động khác nhau.
Tiêu chuẩn SQL chỉ cho phép kèo bóng đá cúp c2 trỏ chỉ được nhúngSQLvà trong các mô -đun.POSTGRESQLcho phép kèo bóng đá cúp c2 trỏ được được sử dụng tương tác.
kèo bóng đá cúp c2 trỏ nhị phân làPOSTGRESQLPhần mở rộng.