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
8285_8356
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo kèo bóng đá euro phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

8.7. kèo bóng đá euro kê#

kèo bóng đá euro kê (enum) là các loại dữ liệu bao gồm một tập hợp các giá trị tĩnh, được đặt hàng. Chúng tương đương vớienumCác kèo bóng đá euro hỗ trợ trong một số ngôn ngữ lập trình. Một ví dụ về loại enum có thể là ngày trong tuần hoặc một tập hợp các giá trị trạng thái cho một phần dữ liệu.

8.7.1. Tuyên bố kèo bóng đá euro kê#

Các kèo bóng đá euro enum được tạo bằng cách sử dụngPostgreSQL: Tài liệu:Lệnh, ví dụ:

Tạo tâm trạng kèo bóng đá euro là enum ('buồn', 'ok', 'hạnh phúc');

Sau khi được tạo, kèo bóng đá euro enum có thể được sử dụng trong các định nghĩa bảng và hàm giống như bất kỳ kèo bóng đá euro nào khác:

Tạo tâm trạng kèo bóng đá euro là enum ('buồn', 'ok', 'hạnh phúc');
Tạo người bàn (
    tên văn bản,
    Tâm trạng hiện tại_mood
);
Chèn vào các giá trị cá nhân ('moe', 'hạnh phúc');
Chọn * từ người trong đó current_mood = 'hạnh phúc';
 Tên | current_mood
------+--------------
 Moe | vui mừng
(1 hàng)

8.7.2. Đặt hàng#

Thứ tự của các giá trị theo loại Enum là thứ tự các giá trị được liệt kê khi kèo bóng đá euro tạo. Tất cả các toán tử so sánh tiêu chuẩn và các chức năng tổng hợp liên quan được hỗ trợ cho các ENUM. Ví dụ:

chèn vào kèo bóng đá euro giá trị cá nhân ('larry', 'buồn');
Chèn vào kèo bóng đá euro giá trị cá nhân ('xoăn', 'ok');
Chọn * từ người nơi hiện tại_mood 'buồn';
 Tên | current_mood
-------+--------------
 Moe | vui mừng
 Xoăn | Được rồi
(2 hàng)

Chọn * từ người nơi hiện tại_mood 'SAD' đặt hàng bởi current_mood;
 Tên | current_mood
-------+--------------
 Xoăn | Được rồi
 Moe | vui mừng
(2 hàng)

Chọn tên
Từ người
Trong đó current_mood = (chọn tối thiểu (current_mood) từ người);
 tên
-------
 Larry
(1 hàng)

8.7.3. kèo bóng đá euro an toàn#

Mỗi loại dữ liệu được liệt kê là riêng biệt và không thể so sánh với kèo bóng đá euro kê khác. Xem ví dụ này:

Tạo kèo bóng đá euro hạnh phúc như enum ('hạnh phúc', 'rất hạnh phúc', 'ngây ngất');
Tạo các ngày lễ (
    Num_weeks Integer,
    hạnh phúc hạnh phúc
);
Chèn vào các giá trị ngày lễ (num_week, hạnh phúc) (4, 'hạnh phúc');
Chèn vào các giá trị ngày lễ (num_week, hạnh phúc) (6, 'rất hạnh phúc');
Chèn vào các giá trị ngày lễ (num_week, hạnh phúc) (8, 'ngây ngất');
Chèn vào các giá trị ngày lễ (num_week, hạnh phúc) (2, 'buồn');
Lỗi: Giá trị đầu vào không hợp lệ cho hạnh phúc enum: "SAD"
Chọn người.Name, ngày lễ.num_weeks từ người, ngày lễ
  Trong đó person.current_mood = ngày lễ.happiness;
Lỗi: Người vận hành không tồn tại: Tâm trạng = Hạnh phúc

Nếu bạn thực sự cần phải làm điều gì đó như vậy, bạn có thể viết một toán tử tùy chỉnh hoặc thêm kèo bóng đá euro diễn viên rõ ràng vào truy vấn của bạn:

Chọn người.
  WHERE person.current_mood :: text = ngày lễ.happiness :: văn bản;
 Tên | num_weeks
------+-----------
 Moe |         4
(1 hàng)

8.7.4. Chi tiết triển khai#

Nhãn enum nhạy cảm, vì vậy'hạnh phúc'không giống như'hạnh phúc'. Không gian trắng trong nhãn cũng rất đáng kể.

14600_14766PostgreSQL: Tài liệu: 18:). Các giá trị hiện tại không thể được xóa khỏi kèo bóng đá euro Enum, cũng không thể thay đổi thứ tự sắp xếp của các giá trị đó, thiếu và tạo lại kèo bóng đá euro Enum.

15043_15150Được đặt têncài đặt được biên dịch thànhPostgreSQL; Trong kèo bóng đá euro bản dựng tiêu chuẩn, điều này có nghĩa là tối đa 63 byte.

kèo bóng đá euro bản dịch từ kèo bóng đá euro giá trị enum bên trong sang nhãn văn bản được lưu trong danh mục hệ thốngpg_enum. Truy vấn danh mục này trực tiếp có thể hữu ích.