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ả |
---|---|---|
|
Bigint |
Giá trị trả về gần đây nhất vớiNextVal cho chuỗi được chỉ định |
|
Bigint |
Giá trị trả về gần đây nhất vớiNextVal cho bất kỳ chuỗi nào |
|
Bigint |
kèo tỷ số bóng đá euro hôm nay tự trước và trả về giá trị mới |
|
Bigint |
Đặt giá trị hiện tại của chuỗi |
|
Bigint |
Đặt giá trị hiện tại của chuỗi vàis_called cờ |
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_ class
Danh 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ìRegClass
Bộ 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ựfoo
nextVal ('foo')hoạt động trên chuỗifoo
nextVal ('"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.foo
nextVal ('"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
.
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ôngRegClass
và 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
đếnRegClass
Trướ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ạngText
hằ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ếpNextVal
Cuộ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ụng
hoặcCập nhật
Đặc quyền trên chuỗi.
Currval
Trả về giá trị gần đây nhất bằngNextVal
cho chuỗi này trong phiên hiện tại. (Một lỗi được báo cáo nếuNextVal
Chưa bao giờ được gọi cho chuỗi này trong phiên này.)NextVal
Kể từ phiên hiện tại đã làm.
Hàm này yêu cầusử dụng
hoặcChọn
Đặc quyền trên chuỗi.
LastVal
Trả về giá trị được trả về gần đây nhất bởiNextVal
Trong 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ọiLastVal
nếuNextVal
chưa được gọi trong phiên hiện tại.
Hàm này yêu cầusử dụng
hoặ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_value
trường thành giá trị được chỉ định và đặt nóis_called
trường đếnTRUE
, nghĩa là tiếp theoNextVal
Sẽ 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ởiCurrval
cũng được đặt thành giá trị được chỉ định. Ở dạng ba tham số,IS_CALLED
có thể được đặt thànhTRUE
hoặcSai
. TRUE
có tác dụng tương tự như dạng hai tham số. Nếu nó được đặt thànhSai
, tiếp theoNextVal
Sẽ 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ởiCurrval
không được thay đổi trong trường hợp này. Ví dụ,
chọn setVal ('foo', 42);Tiếp theoNextVal
Sẽ trả về 43Chọn SetVal ('foo', 42, true);Tương tự như trênChọn SetVal ('foo', 42, false);Tiếp theoNextVal
Sẽ trả về 42
Kết quả được trả về bởiSetVal
chỉ 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.
Để 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ởiNextVal
khô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èn
vớitrên xung đột
23296_23374NextVal
cuộ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 đột
Quy 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ởiSetVal
Có 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ứaNextVal
hoặcSetVal
cuộ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.NextVal
cuộc gọi đã được cam kết trước khi làm như vậy.