Định cách đọc kèo bóng đá (OID) được sử dụng bên trong bởiPostgreSQLlàm khóa chính cho các bảng hệ thống khác nhau. Kiểuoid
đại diện cho một định cách đọc kèo bóng đá. Ngoài ra còn có một số loại bí danh chooid
, mỗi cái tênReg
. Bảng 8.26Hiển thị tổng quan.cái gì đó
Theoid
cách đọc kèo bóng đá hiện được triển khai dưới dạng số nguyên bốn byte không dấu. Do đó, nó không đủ lớn để cung cấp tính duy nhất toàn cơ sở dữ liệu trong cơ sở dữ liệu lớn hoặc thậm chí trong các bảng riêng lẻ lớn.
Theoid
Bản thân cách đọc kèo bóng đá có một vài hoạt động ngoài so sánh. Tuy nhiên, nó có thể được chuyển đến số nguyên, và sau đó thao tác bằng các toán tử số nguyên tiêu chuẩn.
Các loại bí danh OID không có hoạt động của riêng chúng ngoại trừ các thói quen đầu vào và đầu ra chuyên dụng. Các thói quen này có thể chấp nhận và hiển thị tên biểu cách đọc kèo bóng đá cho các đối cách đọc kèo bóng đá hệ thống, thay vì giá trị số thô loạioid
Sẽ sử dụng. Các loại bí danh cho phép tra cứu đơn giản các giá trị OID cho các đối cách đọc kèo bóng đá.PG_Attribution
hàng liên quan đến bảngMyTable
, người ta có thể viết:
Chọn * từ pg_attribut
thay vì:
Chọn * từ PG_Attribution
Trong khi điều đó không có vẻ xấu quá, nó vẫn bị quá đơn giản. Một lựa chọn phụ phức tạp hơn nhiều sẽ là cần thiết để chọn đúng oid nếu có nhiều bảng có tênMyTable
Trong các lược đồ khác nhau. TheRegClass
Bộ chuyển đổi đầu vào xử lý việc tra cứu bảng theo cài đặt đường dẫn lược đồ và do đó nó thực hiệnđiều đúngTự động. Tương tự, việc đúc một bảng OID thànhRegClass
Có tiện dụng cho màn hình biểu cách đọc kèo bóng đá của OID số.
Bảng 8.26. Loại định cách đọc kèo bóng đá
tên | Tài liệu tham khảo | Mô tả | Ví dụ về giá trị |
---|---|---|---|
oid |
any | Định cách đọc kèo bóng đá số | 564182 |
RegClass |
pg_ class |
Tên quan hệ | pg_type |
RegCollation |
pg_collation |
Tên đối chiếu | "POSIX" |
RegConfig |
PG_TS_CONFIG |
Cấu hình tìm kiếm văn bản | tiếng Anh |
Regdictionary |
PG_TS_DICT |
Từ điển tìm kiếm văn bản | đơn giản |
Regnamespace |
PG_Namespace |
Tên không gian tên | pg_catalog |
Regoper |
pg_operator |
Tên người vận hành | + |
RegOperator |
pg_operator |
toán tử với các cách đọc kèo bóng đá đối số | *(số nguyên, số nguyên) hoặc-(không, số nguyên) |
RegProc |
PG_PROC |
tên chức năng | Sum |
RegProcedure |
PG_PROC |
Hàm với các cách đọc kèo bóng đá đối số | sum (int4) |
Revole |
pg_authid |
Tên vai | Smithee |
regtype |
PG_TYPE |
Tên cách đọc kèo bóng đá dữ liệu | Số nguyên |
Tất cả các loại bí danh OID cho các đối cách đọc kèo bóng đá được nhóm theo không gian tên chấp nhận tên đủ điều kiện lược đồ và sẽ hiển thị các tên đủ điều kiện lược đồ trên đầu ra nếu đối cách đọc kèo bóng đá không được tìm thấy trong đường dẫn tìm kiếm hiện tại mà không đủ điều kiện. Ví dụ,myschema.mytable
đầu vào có thể chấp nhận được choRegClass
(Nếu có một bảng như vậy). Giá trị đó có thể là đầu ra làmyschema.mytable
hoặc chỉMyTable
, tùy thuộc vào đường dẫn tìm kiếm hiện tại. TheRegProc
vàRegoper
Các loại bí cách đọc kèo bóng đá sẽ chỉ chấp nhận các tên đầu vào duy nhất (không quá tải), vì vậy chúng được sử dụng hạn chế; cho hầu hết các mục đích sử dụngRegProcedure
hoặcRegoperator
phù hợp hơn. VìRegoperator
, toán tử Unary được xác định bằng cách viếtKhông
Đối với toán hạng không sử dụng.
Các chức năng đầu vào cho các loại này cho phép khoảng trắng giữa các mã thông báo và sẽ gấp các chữ cái trên trường hợp chữ thường, ngoại trừ trong các báo giá gấp đôi; Điều này được thực hiện để làm cho các quy tắc cú pháp tương tự như cách viết tên đối cách đọc kèo bóng đá bằng SQL.foo
(với trường hợp trênf
) Lấy hai đối số số nguyên có thể được nhập dưới dạng' "Foo" (int, integer) ':: regrocedure
. Đầu ra sẽ trông giống như"foo" (số nguyên, số nguyên)
. Cả tên hàm và tên cách đọc kèo bóng đá đối số cũng có thể được định mức lược đồ.
nhiều người tích hợpPostgreSQLCác hàm chấp nhận OID của bảng hoặc một loại đối cách đọc kèo bóng đá cơ sở dữ liệu khác và để thuận tiện được tuyên bố là lấyRegClass
(hoặc loại bí danh oid thích hợp). Điều này có nghĩa là bạn không phải tra cứu OID của đối cách đọc kèo bóng đá, nhưng chỉ có thể nhập tên của nó dưới dạng một chuỗi theo nghĩa đen.nextVal (regClass)
hàm có OID của mối quan hệ trình tự, vì vậy bạn có thể gọi nó như thế này:
NextVal ('foo')hoạt động trên chuỗifoo
NextVal ('foo')giống như trênnextVal ('"foo"')hoạt động trên chuỗifoo
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
Khi bạn viết đối số của một chức năng như một chuỗi theo nghĩa đen không được trang trí, nó trở thành một hằng số của cách đọc kèo bóng đáRegClass
(hoặc loại thích hợp). Vì đây thực sự chỉ là một OID, nó sẽ theo dõi đối cách đọc kèo bóng đá đượ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àyràng buộc sớmHành vi thường được mong muốn đối với các tham chiếu đối cách đọc kèo bóng đá 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 đối cách đọc kèo bóng đá đượ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
Theto_RegClass ()
Hàm và anh chị em của nó cũng có thể được sử dụng để thực hiện tra cứu thời gian chạy. Nhìn thấyBảng 9.70.
Một ví dụ thực tế khác về việc sử dụngRegClass
là tìm kiếm oid của một bảng được liệt kê trongthông tin_schema
Lượt xem, không cung cấp trực tiếp các OID như vậy. Ví dụ, người ta có thể muốn gọipg_relation_size ()
Hàm, yêu cầu bảng oid. Đưa các quy tắc trên vào tài khoản, cách chính xác để làm điều đó là
Chọn Table_Schema, Table_Name,
TheQUOTE_IDENT ()
Chức năng sẽ chăm sóc các trình điều khiển kép các định cách đọc kèo bóng đá khi cần thiết. Có vẻ dễ dàng hơn
Chọn PG_RELATION_SIZE (TABLE_NAME)
làKhông được khuyến nghị, vì nó sẽ thất bại đối với các bảng nằm ngoài đường dẫn tìm kiếm của bạn hoặc có tên yêu cầu trích dẫn.
Một thuộc tính bổ sung của hầu hết các loại bí danh OID là tạo ra các phụ thuộc. Nếu một hằng số của một trong các loại này xuất hiện trong một biểu thức được lưu trữ (chẳng hạn như biểu thức hoặc chế độ xem mặc định cột), nó sẽ tạo ra một sự phụ thuộc vào đối cách đọc kèo bóng đá được tham chiếu.nextVal ('my_seq' :: regClass)
, PostgreSQLHiểu rằng biểu thức mặc định phụ thuộc vào chuỗimy_seq
, vì vậy hệ thống sẽ không để chuỗi bị hủy mà không xóa biểu thức mặc định trước. Sự thay thế củanextVal ('my_seq' :: text)
không tạo ra sự phụ thuộc. (reprole
là một ngoại lệ cho thuộc tính này. Hằng số cách đọc kèo bóng đá này không được phép trong các biểu thức được lưu trữ.)
Một loại định cách đọc kèo bóng đá khác được sử dụng bởi hệ thống làXID
hoặc giao dịch (viết tắtXACT) định cách đọc kèo bóng đá. Đây là loại dữ liệu của các cột hệ thốngxmin
vàxmax
. Định cách đọc kèo bóng đá giao dịch là số lượng 32 bit.XID8
được sử dụng. Không giống nhưXID
Giá trị,XID8
giá trị tăng đơn điệu và không thể được sử dụng lại trong vòng đời của cụm cơ sở dữ liệu.
Loại định cách đọc kèo bóng đá thứ ba được sử dụng bởi hệ thống làCID
hoặc định cách đọc kèo bóng đá lệnh. Đây là loại dữ liệu của các cột hệ thốngcmin
vàcmax
. Số nhận dạng lệnh cũng là số lượng 32 bit.
Một loại định cách đọc kèo bóng đá cuối cùng được sử dụng bởi hệ thống làtid
hoặc định cách đọc kèo bóng đá tuple (định cách đọc kèo bóng đá hàng). Đây là kiểu dữ liệu của cột hệ thốngCTID
. ID tuple là một cặp (số khối, chỉ mục tple trong khối) xác định vị trí vật lý của hàng trong bảng của nó.
(Các cột hệ thống được giải thích thêm trongPhần 5.5.)
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ớpMẫu nàyĐể báo cáo vấn đề tài liệu.