Mô -đun này thực hiệnHstore
Kiểu dữ liệu để lưu trữ kèo bóng đá việt nam bộ khóa/giá trị trong mộtPostgreSQLGiá trị. Điều này có thể hữu ích trong kèo bóng đá việt nam kịch bản khác nhau, chẳng hạn như kèo bóng đá việt nam hàng có nhiều thuộc tính hiếm khi được kiểm tra hoặc dữ liệu bán cấu trúc.
Hstore
Đại diện bên ngoàiBiểu diễn văn kèo bóng đá việt nam củaHstore
, được sử dụng cho đầu vào và đầu ra, bao gồm kèo bóng đá việt nam hoặc nhiều hơnKey
=
Giá trị
cặp được phân tách bằng dấu phẩy. Một số ví dụ:
k = v
Thứ tự của kèo bóng đá việt nam cặp không đáng kể (và có thể không được sao chép trên đầu ra). Khoảng trắng giữa kèo bóng đá việt nam cặp hoặc xung quanh=
Dấu hiệu bị bỏ qua. kèo bóng đá việt nam phím và giá trị trích dẫn kép bao gồm khoảng trắng, dấu phẩy,=
S hoặcs. Để bao gồm một báo giá kép hoặc dấu gạch chéo ngược trong một khóa hoặc giá trị, hãy thoát nó bằng một dấu gạch chéo ngược.
mỗi khóa trong mộtHstore
là duy nhất. Nếu bạn khai báoHstore
Với kèo bóng đá việt nam khóa trùng lặp, chỉ có một cái sẽ được lưu trữ trongHstore
Và kèo bóng đá việt nam có gì đảm bảo sẽ được giữ:
Chọn 'a = 1, a = 2' :: Hstore;
Một giá trị (nhưng kèo bóng đá việt nam phải là khóa) có thể là SQLnull
. Ví dụ:
key = null
12294_foo |00foo |20_foo |26
Từ khóa kèo bóng đá việt nam nhạy cảm. Hai phần trích dẫnnull
Để coi nó là chuỗi thông thườngnullHàng.
Hãy nhớ rằngHstore
Định dạng văn kèo bóng đá việt nam, khi được sử dụng cho đầu vào, áp dụngtrướcBất kỳ trích dẫn hoặc thoát yêu cầu nào. Nếu bạn đang vượt quaHstore
theo nghĩa đen thông qua một tham số, sau đó kèo bóng đá việt nam cần xử lý bổ sung. Nhưng nếu bạn đang chuyển nó dưới dạng hằng số theo nghĩa đen được trích dẫn, thì bất kỳ ký tự nào một cách nào và (tùy thuộc vào cài đặt củaStandard_Conforming_Strings
Tham số cấu hình) kèo bóng đá việt nam ký tự Backslash cần được thoát chính xác. Nhìn thấyPhần 4.1.2.1Để biết thêm về việc xử lý kèo bóng đá việt nam hằng số chuỗi.
trên đầu ra, báo giá đôi luôn bao quanh kèo bóng đá việt nam khóa và giá trị, ngay cả khi nó không hoàn toàn cần thiết.
Hstore
Người vận hành và chức năngkèo bóng đá việt nam toán tử được cung cấp bởiHstore
Mô -đun được hiển thị trongBảng F.7, kèo bóng đá việt nam chức năng trongBảng F.8.
Bảng F.7.Hstore
toán tử
Nhà điều hành | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
Hstore - Text |
Nhận giá trị cho khóa (null Nếu kèo bóng đá việt nam có) |
'a = x, b = y' :: hstore - 'a' |
x |
Hstore - Text [] |
Nhận giá trị cho kèo bóng đá việt nam khóa (null Nếu kèo bóng đá việt nam có) |
'a = x, b = y, c = z' :: hstore - mảng ['c', 'a'] |
"z", "x" |
Hstore || Hstore |
ConcatenateHstore S |
'a = b, c = d' :: hstore || 'c = x, d = q' :: hstore |
"A" = "B", "C" = "X", "D" = "Q" |
Hstore ? Text |
kèo bóng đá việt namHstore chứa khóa? |
'A = 1' :: Hstore? 'Một' |
T |
Hstore ? & Text [] |
kèo bóng đá việt namHstore chứa tất cả kèo bóng đá việt nam khóa được chỉ định? |
'A = 1, b = 2' :: Hstore? & Array ['A', 'B'] |
T |
Hstore ? | Text [] |
kèo bóng đá việt namHstore chứa bất kỳ khóa nào được chỉ định? |
'a = 1, b = 2' :: Hstore? | Mảng ['b', 'c'] |
T |
Hstore @ Hstore |
Vận hành bên trái có chứa phải kèo bóng đá việt nam? | 'a = b, b = 1, c = null' :: hstore @ 'b = 1' |
T |
Hstore <@ Hstore |
là toán hạng bên trái có ở bên phải? | 'A = C' :: Hstore <@ 'A = B, B = 1, C = NULL' |
f |
Hstore - Text |
Xóa phím từ toán hạng trái | 'a = 1, b = 2, c = 3' :: hstore - 'b' :: text |
"A" = "1", "C" = "3" |
Hstore - Text [] |
Xóa kèo bóng đá việt nam phím từ toán hạng bên trái | 'a = 1, b = 2, c = 3' :: hstore - mảng ['a', 'b'] |
"C" = "3" |
Hstore - Hstore |
Xóa kèo bóng đá việt nam cặp khớp từ toán hạng bên trái | 'a = 1, b = 2, c = 3' :: hstore - 'a = 4, b = 2' :: hstore |
"A" = "1", "C" = "3" |
Record #= Hstore |
Thay thế kèo bóng đá việt nam trường trongRecord với kèo bóng đá việt nam giá trị phù hợp từHstore |
Xem ví dụ Phần | |
%% Hstore |
Chuyển đổiHstore Để mảng kèo bóng đá việt nam khóa và giá trị xen kẽ |
%% 'a = foo, b = bar' :: hstore |
a, foo, b, bar |
%# Hstore |
Chuyển đổiHstore đến mảng/mảng giá trị hai chiều |
%# 'a = foo, b = bar' :: hstore |
a, foo, b, bar |
Trước PostgreSQL 8.2, toán tử ngăn chặn@
và<@
được gọi là@
và~
, tương ứng. Những cái tên này vẫn có sẵn, nhưng kèo bóng đá việt nam được chấp nhận và cuối cùng sẽ bị xóa.
Bảng F.8.Hstore
chức năng
hàmhstore_to_json
được sử dụng khiHstore
Giá trị được đúc thànhJSON
. Tương tự như vậy,hstore_to_jsonb
được sử dụng khiHstore
Giá trị được đúc thànhJSONB
.
hàmPopulation_Record
thực sự được khai báo vớiAnyEuity
, kèo bóng đá việt namRecord
, như đối số đầu tiên của nó, nhưng nó sẽ từ chối kèo bóng đá việt nam loại không ghi với lỗi thời gian chạy.
Hstore
Hỗ trợ Chỉ số Gist và Gin cho@
, ?
, ? &
và? |
Người vận hành. Ví dụ:
Tạo chỉ mục HIDX trên Testhstore bằng Gist (h);
Hstore
cũng hỗ trợBtree
hoặcHash
Chỉ mục cho=
toán tử. Điều này cho phépHstore
cột được khai báođộc đáo
hoặc được sử dụng trongNhóm bởi
, Đặt hàng bởi
hoặckhác biệt
Biểu thức. Thứ tự sắp xếp choHstore
Giá trị không đặc biệt hữu ích, nhưng kèo bóng đá việt nam chỉ mục này có thể hữu ích cho việc tra cứu tương đương. Tạo chỉ mục cho=
So sánh như sau:
Tạo chỉ mục HIDX trên Testhstore bằng Btree (h);
Thêm khóa hoặc cập nhật khóa hiện có có giá trị mới:
Tab Cập nhật đặt H = H || hstore ('c', '3');
Xóa khóa:
Tab Update Set H = Delete (h, 'K1');
Chuyển đổi ARecord
đến mộtHstore
:
Tạo thử nghiệm bảng (số nguyên col2 |, văn kèo bóng đá việt nam col2, văn kèo bóng đá việt nam col3);
Chuyển đổi mộtHstore
đến được xác định trướcRecord
loại:
Tạo thử nghiệm bảng (số nguyên col2 |, văn kèo bóng đá việt nam col2, văn kèo bóng đá việt nam col3);
Sửa đổi bản ghi hiện có bằng cách sử dụng kèo bóng đá việt nam giá trị từHstore
:
Tạo thử nghiệm bảng (số nguyên col2 |, văn kèo bóng đá việt nam col2, văn kèo bóng đá việt nam col3);
TheHstore
Loại, vì tính tự do nội tại của nó, có thể chứa rất nhiều khóa khác nhau. Kiểm tra kèo bóng đá việt nam khóa hợp lệ là nhiệm vụ của ứng dụng.
Ví dụ đơn giản:
Chọn * từ mỗi ('aaa = bq, b = null, "" = 1');
Sử dụng bảng:
Chọn (mỗi (h)).
Thống kê trực tuyến:
Chọn khóa, đếm (*) từ
Kể từ Postgresql 9.0,Hstore
Sử dụng biểu diễn nội bộ khác với kèo bóng đá việt nam phiên bản trước. Điều này không có trở ngại cho việc nâng cấp/khôi phục từ bỏ vì biểu diễn văn bản (được sử dụng trong bãi rác) không thay đổi.
Trong trường hợp nâng cấp nhị phân, khả năng tương thích hướng lên được duy trì bằng cách có mã mới nhận ra dữ liệu định dạng cũ. Điều này sẽ đòi hỏi một hình phạt hiệu suất nhỏ khi xử lý dữ liệu chưa được sửa đổi bởi mã mới.Cập nhật
Câu như sau:
38707_38760
Một cách khác để làm điều đó là:
38833_38909
TheBảng thay đổi
Phương pháp yêu cầuAccess Exclusive
Khóa trên bàn, nhưng không dẫn đến việc làm cho bảng với kèo bóng đá việt nam phiên bản hàng cũ.
Tiện ích mở rộng bổ sung có sẵn để thực hiện kèo bóng đá việt nam biến đổi choHstore
Loại cho kèo bóng đá việt nam ngôn ngữ PL/Perl và PL/Python. kèo bóng đá việt nam tiện ích mở rộng cho PL/perl được gọi làhstore_plperl
vàHSTORE_PLPERLU
, cho PL/Perl đáng tin cậy và không tin cậy. Nếu bạn cài đặt kèo bóng đá việt nam biến đổi này và chỉ định chúng khi tạo hàm,Hstore
Giá trị được ánh xạ tới băm Perl. kèo bóng đá việt nam tiện ích mở rộng cho PL/Python được gọi làhstore_plpythonu
, hstore_plpython2u
vàHSTORE_PLPYTHON3U
(xemPhần 46.1Đối với quy ước đặt tên PL/Python). Nếu bạn sử dụng chúng,Hstore
Giá trị được ánh xạ tới từ điển Python.
Được khuyến nghị mạnh mẽ rằng kèo bóng đá việt nam tiện ích mở rộng biến đổi được cài đặt trong cùng lược đồ vớiHstore
. Nếu kèo bóng đá việt nam
Oleg Bartunov<leg@sai.msu.su
, Moscow, Đại học Moscow, Nga
Teodor Sigaev<teodor@sigaev.ru
, Moscow, Delta-Soft Ltd., Nga
Cải tiến bổ sung của Andrew Gierth<andrew@tao11.riddles.189.uk
, Vương quốc Anh