PostgreSQL 9.2.4ʸ�� | ||||
---|---|---|---|---|
前のページ | 上に戻る | 第 8章�ǡ����� | 次のページ |
����enum�˷�����Ū������դ����礫�鹽�������ǡ������Ǥ��� ����ϡ�¿���Υץ�����ߥ���ǥ��ݡ��Ȥ���Ƥ���enum����Ʊ���Ǥ��� �����Ȥ��ơ�������ġ��Υǡ����ˤĤ��Ƥξ����ͤν��礬���ޤ���
���CREATE TYPE���ޥ�ɤ���Ѥ��ƺ�������ޤ��� �ʲ�������ޤ���
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
�����塢¾�Υǡ������ȤۤȤ��Ʊ���褦�ˡ����ơ��֥��ؿ�����ǻ��Ѥ��뤳�Ȥ��Ǥ��ޤ���
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy'); CREATE TABLE person ( name text, current_mood mood ); INSERT INTO person VALUES ('Moe', 'happy'); SELECT * FROM person WHERE current_mood = 'happy'; name | current_mood ------+-------------- Moe | happy (1 row)
�������ͤν���Ϥ��η����������줿�����ͤ�������֤ˤʤ�ޤ��� ����Ф��ơ����٤Ƥ���ӱ黻�Ҥȴ�Ϣ���뽸��ؿ������ݡ��Ȥ���ޤ��� �ʲ�������ޤ���
INSERT INTO person VALUES ('Larry', 'sad'); INSERT INTO person VALUES ('Curly', 'ok'); SELECT * FROM person WHERE current_mood > 'sad'; name | current_mood -------+-------------- Moe | happy Curly | ok (2 rows) SELECT * FROM person WHERE current_mood > 'sad' ORDER BY current_mood; name | current_mood -------+-------------- Curly | ok Moe | happy (2 rows) SELECT name FROM person WHERE current_mood = (SELECT MIN(current_mood) FROM person); name ------- Larry (1 row)
���줾�����ǡ��������̸ĤΤ�Τǡ�¾�������Ӥ��뤳�ȤϤǤ��ޤ��� �ʲ�����Ȥ��Ƥ���������
CREATE TYPE happiness AS ENUM ('happy', 'very happy', 'ecstatic'); CREATE TABLE holidays ( num_weeks integer, happiness happiness ); INSERT INTO holidays(num_weeks,happiness) VALUES (4, 'happy'); INSERT INTO holidays(num_weeks,happiness) VALUES (6, 'very happy'); INSERT INTO holidays(num_weeks,happiness) VALUES (8, 'ecstatic'); INSERT INTO holidays(num_weeks,happiness) VALUES (2, 'sad'); ERROR: invalid input value for enum happiness: "sad" SELECT person.name, holidays.num_weeks FROM person, holidays WHERE person.current_mood = holidays.happiness; ERROR: operator does not exist: mood = happiness
�⤷�����˾�Τ褦�ʤ��Ȥ�ɬ�פʤ�С��ȼ��α黻�Ҥ�������뤫���䤤��碌������Ū�ʥ��㥹�Ȥ��դ��뤳�ȤǹԤ����Ȥ��Ǥ��ޤ���
SELECT person.name, holidays.num_weeks FROM person, holidays WHERE person.current_mood::text = holidays.happiness::text; name | num_weeks ------+----------- Moe | 4 (1 row)
����ͤϥǥ�������Ǥ�4�Х��Ȥ����ޤ��� ����ͤΥƥ����ȥ�٥��Ĺ���ϡ�PostgreSQL���Ȥ߹��ޤ줿NAMEDATALEN����ˤ�����¤���ޤ��� ɸ��ι��ۤǤϡ�����Ϻ���63�Х��Ȥ��̣���ޤ���
��Υ�٥����ʸ����ʸ������̤��ޤ��� ���Τ���'happy'��'HAPPY'��Ʊ���ǤϤ���ޤ��� ��٥���ζ���ʸ�����̣������ޤ���
��������ͤ���ƥ����ȷ����Υ�٥�ؤ��Ѵ��ϡ�pg_enum�����ƥ५����������ݻ�����ޤ��� ���Υ���������ľ���䤤��碌�뤳�Ȥ����Ω�ľ�礬����ޤ���