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
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ế.

9.16. Chức năng Thao tác kèo tỷ số bóng đá euro hôm nay tự

Phần này mô tả các kèo tỷ số bóng đá euro hôm nay để hoạt động trênĐối tượng kèo tỷ số bóng đá euro hôm nay tự, còn được gọi là kèo tỷ số bóng đá euro hôm nay tạo kèo tỷ số bóng đá euro hôm nay tự hoặc chỉ là chuỗi. Các đối tượng chuỗi là các bảng hàng đơn đặc biệt được tạo bằngTạo chuỗi. Các đối tượng kèo tỷ số bóng đá euro hôm nay tự thường được sử dụng để tạo các định danh duy nhất cho các hàng của bảng.Bảng 9.47, Cung cấp các phương thức đơn giản, đa năng an toàn để có được các giá trị chuỗi liên tiếp từ các đối tượng chuỗi.

Bảng 9.47. Chức năng kèo tỷ số bóng đá euro hôm nay tự

function Loại trả lại Mô tả
Currval (RegClass) Bigint Giá trị trả về gần đây nhất vớiNextValcho chuỗi được chỉ định
lastVal () Bigint Giá trị trả về gần đây nhất vớiNextValcho bất kỳ chuỗi nào
NextVal (RegClass) Bigint kèo tỷ số bóng đá euro hôm nay tự trước và trả về giá trị mới
setVal (RegClass, Bigint) Bigint Đặt giá trị hiện tại của chuỗi
setVal (RegClass, Bigint, Boolean) Bigint Đặt giá trị hiện tại của chuỗi vàis_calledcờ

kèo tỷ số bóng đá euro hôm nay tự được vận hành trên hàm kèo tỷ số bóng đá euro hôm nay tự được chỉ định bởi ARegClassĐối số, chỉ đơn giản là oid của chuỗi trongpg_ classDanh mục hệ thống. Tuy nhiên, bạn không cần phải tìm kiếm OID bằng tay, vìRegClassBộ chuyển đổi đầu vào của loại dữ liệu sẽ thực hiện công việc cho bạn. Chỉ cần viết tên kèo tỷ số bóng đá euro hôm nay tự được đặt trong các trích dẫn đơn để nó trông giống như một hằng số theo nghĩa đen.SQLTên, chuỗi sẽ được chuyển đổi thành chữ thường trừ khi nó chứa các trích dẫn kép xung quanh tên chuỗi. Do đó:

nextVal ('foo')hoạt động theo kèo tỷ số bóng đá euro hôm nay tựfoonextVal ('foo')hoạt động trên chuỗifoonextVal ('"foo"')hoạt động theo kèo tỷ số bóng đá euro hôm nay tựfoo

Tên kèo tỷ số bóng đá euro hôm nay tự có thể được kèo tỷ số bóng đá euro hôm nay độ lược đồ nếu cần thiết:

nextVal ('myschema.foo')hoạt động trênmyschema.foonextVal ('"myschema" .foo')Tương tự như trênNextVal ('foo')Tìm kiếm đường dẫn tìm kiếm chofoo

xemPhần 8.19Để biết thêm thông tin vềRegClass.

Lưu ý

trướcPostgreSQL8.1, Các đối số của các hàm kèo tỷ số bóng đá euro hôm nay tự thuộc loạiText, khôngRegClassvà chuyển đổi được mô tả ở trên từ chuỗi văn bản sang giá trị OID sẽ xảy ra vào thời gian chạy trong mỗi cuộc gọi. Để tương thích ngược, cơ sở này vẫn tồn tại, nhưng bên trong, nó hiện được xử lý như một sự ép buộc ngầm từTextđếnRegClassTrước khi kèo tỷ số bóng đá euro hôm nay được gọi.

17026_17141RegClass. Vì đây thực sự chỉ là một OID, nó sẽ theo dõi kèo tỷ số bóng đá euro hôm nay tự được xác định ban đầu mặc dù sau đó đổi tên, phân công lại lược đồ, v.v ... Điều nàyHồiràng buộc sớmHành vi thường được mong muốn đối với các tài liệu tham khảo chuỗi trong các mặc định và chế độ xem. Nhưng đôi khi bạn có thể muốnHồiBinding muộnTrong đó tham chiếu kèo tỷ số bóng đá euro hôm nay tự được giải quyết tại thời gian chạy. Để có được hành vi liên kết muộn, buộc hằng số phải được lưu trữ dưới dạngTexthằng số thay vìRegClass:

nextVal ('foo' :: text)foođược nhìn lên thời gian chạy

Lưu ý rằng ràng buộc muộn là hành vi duy nhất được hỗ trợ trongPostgreSQLPhát hành trước 8.1, vì vậy bạn có thể cần phải làm điều này để bảo tồn ngữ nghĩa của các ứng dụng cũ.

Tất nhiên, đối số của hàm kèo tỷ số bóng đá euro hôm nay tự có thể là một biểu thức cũng như hằng số. Nếu đó là biểu thức văn bản thì sự ép buộc ngầm sẽ dẫn đến tra cứu thời gian chạy.

Các hàm kèo tỷ số bóng đá euro hôm nay tự có sẵn là:

NextVal

Chuyển đối tượng chuỗi về giá trị tiếp theo của nó và trả về giá trị đó. Điều này được thực hiện một cách nguyên tử: ngay cả khi nhiều phiên thực thiNextValĐồng thời, mỗi người sẽ nhận được một giá trị kèo tỷ số bóng đá euro hôm nay tự riêng biệt một cách an toàn.

Nếu một đối tượng chuỗi đã được tạo với các tham số mặc định, liên tiếpNextValCuộc gọi sẽ trả về các giá trị liên tiếp bắt đầu bằng 1. Các hành vi khác có thể thu được bằng cách sử dụng các tham số đặc biệt trongTạo chuỗilệnh; Xem trang tham chiếu lệnh của nó để biết thêm thông tin.

Hàm này yêu cầusử dụnghoặcCập nhậtĐặc quyền trên chuỗi.

Currval

Trả về giá trị gần đây nhất bằngNextValcho chuỗi này trong phiên hiện tại. (Một lỗi được báo cáo nếuNextValChưa bao giờ được gọi cho chuỗi này trong phiên này.)NextValKể từ phiên hiện tại đã làm.

Hàm này yêu cầusử dụnghoặcChọnĐặc quyền trên chuỗi.

LastVal

Trả về giá trị được trả về gần đây nhất bởiNextValTrong phiên hiện tại. kèo tỷ số bóng đá euro hôm nay này giống hệt vớiCurrval, ngoại trừ thay vì lấy tên chuỗi làm đối số mà nó đề cập đến bất kỳ chuỗi nàoNextValđược áp dụng gần đây nhất trong phiên hiện tại. Đó là một lỗi khi gọiLastValnếuNextValchưa được gọi trong phiên hiện tại.

Hàm này yêu cầusử dụnghoặcChọnĐặc quyền trên chuỗi được sử dụng cuối cùng.

SetVal

Đặt lại giá trị bộ đếm của đối tượng chuỗi. Biểu mẫu hai tham số đặt kèo tỷ số bóng đá euro hôm nay tựlast_valuetrường thành giá trị được chỉ định và đặt nóis_calledtrường đếnTRUE, nghĩa là tiếp theoNextValSẽ nâng cao kèo tỷ số bóng đá euro hôm nay tự trước khi trả về một giá trị. Giá trị được báo cáo bởiCurrvalcũng được đặt thành giá trị được chỉ định. Ở dạng ba tham số,IS_CALLEDcó thể được đặt thànhTRUEhoặcSai. TRUEcó tác dụng tương tự như dạng hai tham số. Nếu nó được đặt thànhSai, tiếp theoNextValSẽ trả về chính xác giá trị được chỉ định và tiến bộ kèo tỷ số bóng đá euro hôm nay tự bắt đầu với phần sauNextVal. Hơn nữa, giá trị được báo cáo bởiCurrvalkhông được thay đổi trong trường hợp này. Ví dụ,

chọn setVal ('foo', 42);Tiếp theoNextValSẽ trả về 43Chọn SetVal ('foo', 42, true);Tương tự như trênChọn SetVal ('foo', 42, false);Tiếp theoNextValSẽ trả về 42

Kết quả được trả về bởiSetValchỉ là giá trị của đối số thứ hai của nó.

Hàm này yêu cầuCập nhậtĐặc quyền trên chuỗi.

THẬN TRỌNG

Để tránh chặn các giao dịch đồng thời có được số từ cùng một chuỗi, giá trị thu được bởiNextValkhông được khai hoang để sử dụng lại nếu giao dịch gọi sau đó bị hủy bỏ. Điều này có nghĩa là việc hủy bỏ giao dịch hoặc sự cố cơ sở dữ liệu có thể dẫn đến các khoảng trống trong chuỗi các giá trị được chỉ định.Chènvớitrên xung đột23296_23374NextValcuộc gọi, trước khi phát hiện bất kỳ xung đột nào khiến nó phải tuân theotrên xung độtQuy tắc thay thế. Do đó,PostgreSQLĐối tượng chuỗiKhông thể được sử dụng để có đượcGaplessChuỗi.

Tương tự như vậy, các thay đổi trạng thái kèo tỷ số bóng đá euro hôm nay tự được thực hiện bởiSetValCó thể hiển thị ngay các giao dịch khác và không hoàn tác nếu giao dịch gọi quay lại.

Nếu cụm cơ sở dữ liệu gặp sự cố trước khi thực hiện giao dịch có chứaNextValhoặcSetValcuộc gọi, thay đổi trạng thái kèo tỷ số bóng đá euro hôm nay tự có thể không được thực hiện để lưu trữ liên tục, do đó không chắc chắn liệu kèo tỷ số bóng đá euro hôm nay tự sẽ có trạng thái ban đầu hay được cập nhật sau khi khởi động lại cụm. Điều này là vô hại cho việc sử dụng chuỗi trong cơ sở dữ liệu, vì các hiệu ứng khác của các giao dịch không được cam kết cũng sẽ không thể nhìn thấy.NextValcuộc gọi đã được cam kết trước khi làm như vậy.