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
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá euro

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

Synopsis

kèo bóng đá eurotên[nhị phân] [vô cảm] [[không] cuộn]
    kèo bóng đá euro trỏ [với | Không có giữ] choTruy vấn

Mô tả

kèo bóng đá euroCho phép người dùng tạo kèo bóng đá euro trỏ, có thể được sử dụng để lấy một số lượng nhỏ hàng cùng một lúc ra khỏi truy vấn lớn hơn. Sau khi kèo bóng đá euro 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 kèo bóng đá euro trỏ ở cấp lệnh SQL. Nếu bạn đang cố gắng sử dụng kèo bóng đá euro trỏ bên trongPL/PGSQLHàm, các quy tắc khác nhau - xemPhần 42.7.

tham số

tên

Tên của kèo bóng đá euro trỏ sẽ được tạo.

nhị phân

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

không nhạy cảm

Cho biết dữ liệu được lấy từ kèo bóng đá euro trỏ phải không bị ảnh hưởng bởi các bản cập nhật lên (các) bảng nằm dưới kèo bóng đá euro trỏ xảy ra sau khi kèo bóng đá euro trỏ được tạo. TRONGPostgreSQL, Đây là hành vi mặc định; Vì vậy, 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.

cuộn
Không có cuộn

cuộn12749_1292412944_12952có 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 kèo bóng đá euro 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úĐể biết chi tiết.

với giữ
không giữ

với giữChỉ định rằng kèo bóng đá euro 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 kèo bóng đá euro 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 kèo bóng đá euro trỏ.

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

Ghi chú

kèo bóng đá euro trỏ bình thường trả về dữ liệu ở định dạng văn bản, giống như AChọn14803_14825nhị phânTùy chọn Chỉ định rằng kèo bóng đá euro 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 kèo bóng đá euro trỏ mặc định, trong khi với kèo bóng đá euro 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 đá euro 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 kèo bóng đá euro 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 AFetch15817_16125

trừ khivới giữđược chỉ định, kèo bóng đá euro 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 đó,kèo bóng đá eurokhôngvới giữlà vô dụng bên ngoài một khối giao dịch: kèo bóng đá euro trỏ sẽ chỉ tồn tại để hoàn thành câu lệnh. Vì thếPostgreSQLkèo bóng đá euro 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ữđược chỉ định và giao dịch tạo ra kèo bóng đá euro trỏ cam kết thành công, kèo bóng đá euro 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 đá euro trỏ bị xóa.) Một kèo bóng đá euro 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 đá euro hiện tại, các hàng được biểu thị bằng con trỏ được sao chép vào một tệp tạm thời hoặc khu vực bộ nhớ để 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 nên được chỉ định khi xác định kèo bóng đá euro 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 kèo bóng đá euro 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ừ kèo bóng đá euro 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

18788_18880Phần 37.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ố kèo bóng đá euro trỏCuộn với giữ19349_19567

Nếu truy vấn của kèo bóng đá euro 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, theo cách tương tự như đối với một thông thườngChọn19900_20080kèo bóng đá euro trỏ nhạy cảmxông. (Chỉ địnhKhông nhạy cảmcùng vớiđể 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 đá euro trỏ được dự định sẽ được 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ật, sau đó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 kèo bóng đá euro trỏ được tạo.

Một lý do khác để sử dụngđể 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 truy vấn kèo bóng đá euro trỏ không đáp ứng các quy tắc của tiêu chuẩn SQL vì21227_21230đơn giản là có thể cập nhật(Đặc biệt, kèo bóng đá euro 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 đá euro 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, kèo bóng đá euro 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 được 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, hãy chú ý đến các cảnh kèo bóng đá euro đượ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 đá euro trỏ trong nhúngSQL. ThePostgreSQLMáy chủ không triển kèo bóng đá euroMởTuyên bố cho con trỏ; Một con trỏ được coi là mở khi nó được kèo bóng đá euro. Tuy nhiên,ECPG, Bộ tiền xử lý SQL được nhúng choPostgreSQL, hỗ trợ các quy ước kèo bóng đá euro trỏ SQL tiêu chuẩn, bao gồm cả các quy ước liên quan đếnkèo bóng đá euroMởcâu lệnh.

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

Ví dụ

Để kèo bóng đá euro con trỏ:

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

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

Tương thích

Tiêu chuẩn SQL nói rằng phụ thuộc vào việc thực hiện cho dù kèo bóng đá euro 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 hay không. TRONGPostgreSQL, kèo bóng đá euro trỏ không nhạy cảm theo 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 đá euro trỏ chỉ được nhúngSQLvà trong các mô -đun.POSTGRESQLcho phép kèo bóng đá euro trỏ được sử dụng tương tác.

kèo bóng đá euro trỏ nhị phân làPOSTGRESQLMở rộng.

Xem thêm

Đóng, Fetch, Di chuyển