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

khai cách đọc kèo bóng đá

Khai cách đọc kèo bóng đá - Xác định con trỏ

Synopsis

khai cách đọc kèo bóng đátên[nhị phân] [authensitive | Không nhạy cảm] [[không] cuộn]
    cách đọc kèo bóng đá trỏ [với | Không có giữ] choTruy vấn

Mô tả

khai cách đọc kèo bóng đáCho phép người dùng tạo cách đọc kèo bóng đá trỏ, có thể được sử dụng để lấy một số lượng nhỏ hàng cùng một lúc trong một truy vấn lớn hơn. Sau khi cách đọc kèo bóng đá trỏ được tạo, các hàng được tìm nạp từ nó bằng cách sử dụngFetch.

Lưu ý

Trang này mô tả việc sử dụng cách đọc kèo bóng đá trỏ ở cấp lệnh SQL. Nếu bạn đang cố gắng sử dụng cách đọc kèo bóng đá trỏ bên trongPL/PGSQLhàm, các quy tắc khác nhau - xemPhần 41.7.

tham số

tên

11546_11658

nhị phân

khiến cách đọc kèo bóng đá trỏ trả về dữ liệu ở nhị phân thay vì ở định dạng văn bản.

Asensitive
Không nhạy cảm

Độ nhạy con trỏ xác định xem các thay đổi đối với dữ liệu có nằm dưới con trỏ hay không, được thực hiện trong cùng một giao dịch, sau khi con trỏ được khai cách đọc kèo bóng đá, có thể nhìn thấy trong con trỏ.không nhạy cảmCó nghĩa là chúng không hiển thị,AsensitiveCó nghĩa là hành vi phụ thuộc vào việc thực hiện. Một hành vi thứ ba,nhạy cảm, có nghĩa là những thay đổi đó có thể nhìn thấy trong cách đọc kèo bóng đá trỏ, không có sẵn trongPostgreSQL. TRONGPostgreSQL, Tất cả các cách đọc kèo bóng đá trỏ đều không nhạy cảm; Vì vậy, những từ khóa này không có hiệu lực và chỉ được chấp nhận để tương thích với tiêu chuẩn SQL.

Chỉ địnhKhông nhạy cảmcùng vớiđể cập nhậthoặc12879_12890là một lỗi.

cuộn
Không cuộn

cuộnChỉ định rằng cách đọc kèo bóng đá trỏ có thể được sử dụng để truy xuất các hàng theo kiểu không sau (ví dụ: ngược). Tùy thuộc vào sự phức tạp của kế hoạch thực thi của truy vấn, chỉ địnhcuộncó thể áp dụng hình phạt hiệu suất đối với thời gian thực hiện của truy vấn.Không có cuộnChỉ định rằng cách đọc kèo bóng đá trỏ không thể được sử dụng để truy xuất 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úbên dưới để biết chi tiết.

với giữ
không giữ

với giữChỉ định rằng cách đọc kèo bóng đá trỏ có thể tiếp tục được sử dụng sau khi giao dịch tạo ra nó cam kết thành công.không giữChỉ định rằng cách đọc kèo bóng đá 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ữcũng khôngvới giữđược chỉ định,không giữlà mặc định.

Truy vấn

AChọnhoặcGiá trịLệnh sẽ cung cấp các hàng được trả về bởi cách đọc kèo bóng đá trỏ.

Các từ khóaAsensitive, nhị phân, Không nhạy cảmcuộncó thể xuất hiện theo bất kỳ thứ tự nào.

ghi chú

cách đọc kèo bóng đá trỏ bình thường trả về dữ liệu ở định dạng văn bản, giống như AChọn15226_15248nhị phânTùy chọn Chỉ định rằng cách đọc kèo bóng đá trỏ sẽ 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. Ví dụ, nếu một truy vấn trả về giá trị của một từ cột số nguyên, bạn sẽ nhận được một chuỗi1Với cách đọc kèo bóng đá trỏ mặc định, trong khi với cách đọc kèo bóng đá 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).

cách đọc kèo bóng đá 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ý các cách đọc kèo bóng đá trỏ nhị phân và mong đợi dữ liệu sẽ quay lại ở định dạng văn bản.

Lưu ý

Khi ứng dụng máy khách sử dụngTruy vấn mở rộngGiao thức phát hành AFetchlệnh, thông cách đọc kèo bóng đá giao thức liên kết chỉ định xem dữ liệu có được truy xuất ở định dạng văn bản hoặc nhị phân hay không. Lựa chọn này ghi đè theo cách mà con trỏ được xác định. Do đó, khái niệm về con trỏ nhị phân như vậy đã bị 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, cách đọc kèo bóng đá 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 cách đọc kèo bóng đákhông cóvới giữlà vô dụng bên ngoài một khối giao dịch: cách đọc kèo bóng đá trỏ sẽ chỉ tồn tại để hoàn thành câu lệnh. Vì thếPostgreSQLcách đọc kèo bóng đá cáo lỗi nếu lệnh đó được sử dụng bên ngoài khối giao dịch. Sử dụngbắt đầucam kết(hoặcrollback) để xác định khối giao dịch.

nếuvới giữ17416_17676với giữđược đóng khi rõ ràngĐóng17774_17998

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 nên được chỉ định khi xác định cách đọc kèo bóng đá trỏ sẽ được sử dụng để tìm nạp ngược. Điều 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 cách đọc kèo bóng đá trỏ đủ đơ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 các fetch ngược từ cách đọc kèo bóng đá trỏ chưa được tạo bằngcuộn. Nếu nhưKhông có cuộnđượ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ặcđể chia sẻ; Vì vậycuộncó thể không được chỉ định trong trường hợp này.

THẬN TRỌNG

cách đọc kèo bóng đá trỏ có thể cuộn có thể cho kết quả không mong muốn nếu chúng gọi bất kỳ chức năng dễ bay hơi nào (xemPhần 36.7). Khi một 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. Tốt nhất là chỉ địnhKhông có cuộnĐối với một truy vấn liên quan đến các chức năng dễ bay hơi. Nếu điều đó không thực tế, một cách giải quyết là tuyên bố cách đọc kèo bóng đá trỏCuộn với giữvà cam kết giao dịch trước khi đọc bất kỳ hàng nào từ nó. Điều này sẽ buộc toàn bộ đầu ra của cách đọc kèo bóng đá trỏ phải được vật chất hóa trong lưu trữ tạm thời, để các chức năng dễ bay hơi được thực thi chính xác một lần cho mỗi hàng.

Nếu truy vấn của cách đọc kèo bóng đá trỏ bao gồmđể cập nhậthoặcđể chia sẻ, sau đó các hàng được trả về được khóa tại thời điểm chúng được tìm nạp lần đầu tiên, giống như đối với 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ả về sẽ là phiên bản cập nhật nhất.

THẬN TRỌNG

Người ta thường nên sử dụngđể cập nhậtNếu cách đọc kèo bóng đá trỏ được dự định sử dụng vớiCập nhật ... trong đó 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ật20913_20930trong đó hiện tại củaLệnh sẽ không có hiệu lực nếu hàng được thay đổi kể từ khi cách đọc kèo bóng đá trỏ được tạo.

Một lý do khác để sử dụngđể cập nhậtCó phải không có nó, sau đóhiện tại củaCó thể thất bại nếu truy vấn cách đọc kèo bóng đá trỏ không đáp ứng các quy tắc của tiêu chuẩn SQL vìHồiSimply Updatable(Đặc biệt, cách đọc kèo bóng đá 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). cách đọc kèo bóng đá trỏ không chỉ đơn giản là 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 của 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. Nếu nhưđể cập nhậtđược chỉ định, cách đọc kèo bóng đá trỏ được đảm bảo là có thể cập nhật.

Lý do chính không sử dụngđể cập nhậtvớitrong đó hiện tại củalà nếu bạn cần con trỏ có thể cuộn hoặc được cách ly với các bản cập nhật đồng thời (nghĩa là tiếp tục hiển thị dữ liệu cũ). Nếu đây là một yêu cầu, hãy chú ý đến các cảnh cách đọc kèo bóng đá được hiển thị ở trên.

Tiêu chuẩn SQL chỉ đưa ra các điều khoản cho cách đọc kèo bóng đá trỏ trong nhúngSQL. ThePostgreSQLMáy chủ không triển cách đọc kèo bóng đáMởTuyên bố cho con trỏ; Một con trỏ được coi là mở khi nó được khai cách đọc kèo bóng đá. Tuy nhiên,ECPG, Bộ tiền xử lý SQL được nhúng choPostgreSQL, Hỗ trợ các quy ước cách đọc kèo bóng đá trỏ SQL tiêu chuẩn, bao gồm cả các quy ước liên quan đếnkhai cách đọc kèo bóng đáMởCâu lệnh.

Cấu trúc dữ liệu máy chủ nằm dưới một cách đọc kèo bóng đá trỏ mở được gọi làCổng thông tin. Tên cổng thông tin được phơi bày trong giao thức máy khách: Máy khách có thể tìm nạp các hàng trực tiếp từ một cổng thông tin mở, nếu biết tên cổng thông tin. Khi tạo một cách đọc kèo bóng đá trỏ bằngkhai cách đọc kèo bóng đá, tên cổng thông tin giống như tên cách đọc kèo bóng đá trỏ.

Bạn có thể thấy tất cả các cách đọc kèo bóng đá trỏ có sẵn bằng cách truy vấnPG_CURSORSChế độ xem hệ thống.

Ví dụ

Để khai cách đọc kèo bóng đá con trỏ:

Khai cách đọc kèo bóng đá con trỏ Liahona cho Chọn * từ phim;

xemFetchĐể biết thêm ví dụ về việc sử dụng cách đọc kèo bóng đá trỏ.

Tương thích

Tiêu chuẩn SQL chỉ cho phép cách đọc kèo bóng đá trỏ chỉ được nhúngSQLvà trong các mô -đun.PostgreSQLcho phép cách đọc kèo bóng đá trỏ được sử dụng tương tác.

Theo tiêu chuẩn SQL, các thay đổi được thực hiện đối với cách đọc kèo bóng đá trỏ không nhạy cảm bằng cáchCập nhật ... trong đó hiện tại củaXóa ... nơi hiện tại củaCác câu lệnh có thể nhìn thấy trong cùng cách đọc kèo bóng đá trỏ đó.PostgreSQLđối xử với các câu lệnh này như tất cả các câu lệnh thay đổi dữ liệu khác ở chỗ chúng không thể nhìn thấy trong các cách đọc kèo bóng đá trỏ không nhạy cảm.

cách đọc kèo bóng đá trỏ nhị phân là mộtPostgreSQLphần mở rộng.

Xem thêm

Đóng, Fetch, Di chuyển

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể cách đọc kèo bóng đá cáo vấn đề tài liệu.