Mô -đun này thực hiện스포츠 토토
Kiểu dữ liệu để lưu trữ các bộ khóa/giá trị trong mộtPostgreSQLGiá trị. Điều này có thể hữu ích trong các kịch bản khác nhau, chẳng hạn như các 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. Các khóa và giá trị chỉ đơn giản là chuỗi văn bản.
Mô -đun này được coi làHồiTrustedHồi, nghĩa là, nó có thể được cài đặt bởi những người không phải là người siêu giám sát cóTạo
Đặc quyền trên cơ sở dữ liệu hiện tại.
스포츠 토토
Đại diện bên ngoài#Biểu diễn văn bản của스포츠 토토
, được sử dụng cho đầu vào và đầu ra, bao gồm không 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. foo = thanh, baz = bất cứ điều gì "1-a" = "bất cứ điều gì ở tất cả"
Thứ tự của các 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 các cặp hoặc xung quanh=
Dấu hiệu bị bỏ qua. Các 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ột스포츠 토토
là duy nhất. Nếu bạn khai báo스포츠 토토
Với các khóa trùng lặp, chỉ có một cái sẽ được lưu trữ trong스포츠 토토
Và không có gì đảm bảo sẽ được giữ:
Chọn 'a = 1, a = 2' :: 스포츠 토토; hstore ---------- "A" = "1"
Một giá trị (nhưng không phải là khóa) có thể là SQLnull
. Ví dụ:
key = null
Thenull
Từ khóa không nhạy cảm với trường hợp. Hai phần trích dẫnnull
Để coi nó là chuỗi thông thườngnullxông.
Hãy nhớ rằng스포츠 토토
Định dạng văn bản, 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 qua스포츠 토토
theo nghĩa đen thông qua một tham số, sau đó không 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) Các 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ý các hằng số chuỗi.
Trên đầu ra, báo giá đôi luôn bao quanh các khóa và giá trị, ngay cả khi nó không hoàn toàn cần thiết.
스포츠 토토
toán tử và chức năng#Các toán tử được cung cấp bởi스포츠 토토
Mô -đun được hiển thị trongBảng F.6, các chức năng trongBảng F.7.
Bảng F.6. 스포츠 토토
toán tử
Nhà điều hành Mô tả Ví dụ |
---|
Trả về giá trị được liên kết với phím đã cho hoặc
|
Trả về các giá trị được liên kết với các khóa đã cho hoặc
|
Concatenates Hai
|
không
|
không
|
không
|
Vận hành bên trái có chứa phải không?
|
là toán hạng bên trái có ở bên phải?
|
Xóa phím khỏi toán hạng bên trái.
|
Xóa các phím từ toán hạng bên trái.
|
Xóa các cặp từ toán hạng bên trái phù hợp với các cặp trong toán hạng bên phải.
|
Thay thế các trường trong toán hạng bên trái (phải là loại tổng hợp) với các giá trị phù hợp từ
|
Chuyển đổi
|
Chuyển đổi
|
Bảng F.7. 스포츠 토토
Chức năng
Ngoài các toán tử và chức năng này, các giá trị của스포츠 토토
Loại có thể được đăng ký, cho phép chúng hoạt động như các mảng kết hợp. Chỉ một chỉ số duy nhất của loạiText
có thể được chỉ định; Nó được hiểu là một khóa và giá trị tương ứng được tìm nạp hoặc lưu trữ. Ví dụ,
Tạo bảng mytable (h hstore); Chèn vào các giá trị mytable ('a = b, c = d'); Chọn H ['A'] từ MyTable; h --- b (1 hàng) Cập nhật MyTable Set H ['C'] = 'Mới'; Chọn H từ mytable; h -------------------------- "A" = "B", "C" = "Mới" (1 hàng)
Một lần tìm kiếm được đăng kýnull
Nếu chỉ số lànull
hoặc khóa đó không tồn tại trong스포츠 토토
. .-
Nhà điều hành.) Một bản cập nhật được đăng ký không thành công nếu chỉ số lànull
; Nếu không, nó thay thế giá trị cho khóa đó, thêm một mục vào스포츠 토토
Nếu khóa chưa tồn tại.
스포츠 토토
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); Tạo chỉ mục HIDX trên Testhstore bằng Gin (H);
gist_스포츠 토토_ops
GIST OPCLASS xấp xỉ một tập hợp các cặp khóa/giá trị dưới dạng chữ ký bitmap. Tham số số nguyên tùy chọn của nóSiglen
Xác định độ dài chữ ký trong byte. Độ dài mặc định là 16 byte. Các giá trị hợp lệ của độ dài chữ ký nằm trong khoảng từ 1 đến 2024 byte. Chữ ký dài hơn dẫn đến một tìm kiếm chính xác hơn (quét một phần nhỏ hơn của chỉ mục và ít trang đống hơn), với chi phí của một chỉ số lớn hơn.
Ví dụ về việc tạo một chỉ mục như vậy với độ dài chữ ký là 32 byte:
40296_40374
스포츠 토토
cũng hỗ trợBtree
hoặcHash
Chỉ mục cho=
toán tử. Điều này cho phép스포츠 토토
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 cho스포츠 토토
Giá trị không đặc biệt hữu ích, nhưng các chỉ mục này có thể hữu ích cho cá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); Tạo chỉ mục HIDX trên Testhstore bằng băm (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 ['C'] = '3';
Một cách khác để làm điều tương tự là:
Tab Cập nhật đặt H = H || hstore ('c', '3');
Nếu nhiều khóa được thêm hoặc thay đổi trong một thao tác, phương pháp nối tiếp tục hơn so với đăng ký:
Tab Cập nhật đặt H = H || hstore (mảng ['q', 'w'], mảng ['11 ',' 12 ']);
Xóa khóa:
Tab Update Set H = Delete (h, 'K1');
Chuyển đổi ARecord
đến một스포츠 토토
:
Tạo thử nghiệm bảng (số nguyên col1, văn bản col2, văn bản col3); Chèn vào các giá trị kiểm tra (123, 'foo', 'thanh'); Chọn HStore (T) từ thử nghiệm là T; hstore ------------------------------------------------- "col1" = "123", "col2" = "foo", "col3" = "bar" (1 hàng)
Chuyển đổi một스포츠 토토
đến được xác định trướcRecord
loại:
Tạo thử nghiệm bảng (số nguyên col1, văn bản col2, văn bản col3); Chọn * Từ population_record (null :: test, '"col1" = "456", "col2" = "zzz"'); col1 | col2 | col3 ------+------+------ 456 | zzz | (1 hàng)
Sửa đổi bản ghi hiện có bằng cách sử dụng các giá trị từ스포츠 토토
:
Tạo thử nghiệm bảng (số nguyên col1, văn bản col2, văn bản col3); Chèn vào các giá trị kiểm tra (123, 'foo', 'thanh'); Chọn (r).* Từ (chọn t #= '"col3" = "Baz"' làm r từ thử nghiệm t) s; col1 | col2 | col3 ------+------+------ 123 | foo | Baz (1 hàng)
The스포츠 토토
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 các khóa hợp lệ là nhiệm vụ của ứng dụng. Các ví dụ sau đây chứng minh một số kỹ thuật để kiểm tra các khóa và có được số liệu thống kê.
Ví dụ đơn giản:
Chọn * từ mỗi ('aaa = bq, b = null, "" = 1');
Sử dụng bảng:
Tạo chỉ số bảng là chọn (mỗi (h)).
Thống kê trực tuyến:
Chọn khóa, đếm (*) từ (Chọn (mỗi (h)). Khóa từ Testhstore) làm chỉ số Nhóm theo khóa Đặt hàng theo đếm desc, khóa; chìa khóa | đếm -----------+------- dòng | 883 Truy vấn | 207 pos | 203 nút | 202 Không gian | 197 trạng thái | 195 công khai | 194 Tiêu đề | 190 org | 189 ...................
Kể từ Postgresql 9.0,스포츠 토토
Sử dụng biểu diễn nội bộ khác với các 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 tăng đượ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ó thể buộc nâng cấp tất cả các giá trị trong cột bảng bằng cách thực hiệnCập nhật
Câu như sau:
45340_45393
Một cách khác để làm điều đó là:
45466_45542
TheBảng thay đổi
Phương pháp yêu cầuAccess Exclusive
Khóa trên bảng, nhưng không dẫn đến việc làm cho bảng với các phiên bản hàng cũ.
tiện ích mở rộng bổ sung có sẵn để thực hiện các biến đổi cho스포츠 토토
Loại cho các ngôn ngữ PL/Perl và PL/Python. Các tiện ích mở rộng cho PL/perl được gọi là스포츠 토토_plperl
và스포츠 토토_plperlu
, cho PL/Perl đáng tin cậy và không tin cậy. Nếu bạn cài đặt các biến đổi này và chỉ định chúng khi tạo hàm,스포츠 토토
Giá trị được ánh xạ tới băm Perl. Phần mở rộng cho PL/Python được gọi là스포츠 토토_plpython3u
. Nếu bạn sử dụng nó,스포츠 토토
Giá trị được ánh xạ tới từ điển Python.
Được khuyến nghị mạnh mẽ rằng các tiện ích mở rộng biến đổi được cài đặt trong cùng lược đồ như스포츠 토토
. Nếu không
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.org.uk
, Vương quốc Anh
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 phù hợp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.