¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

CREATE INDEX

Name

CREATE INDEX  -- ����������ǥå��������

Synopsis

CREATE [ UNIQUE ] INDEX index_name ON table
    [ USING acc_method ] ( column [ ops_name ] [, ...] )
    [ WHERE predicate ]
CREATE [ UNIQUE ] INDEX index_name ON table
    [ USING acc_method ] ( func_name( column [, ... ]) [ ops_name ] )
    [ WHERE predicate ]
  

����

UNIQUE

����ǥå������ʤ��Ǥ˥ǡ�����������֤ǡ˺��������Ȥ��ȥǡ������ɲä����Ȥ��ˡ��ơ��֥�����ͤ���ʣ���Ƥ��ʤ���������å����ޤ�����ʣ����ȥ���������̤Ȥʤ�ǡ����������ޤ��Ϲ����ϥ��顼�Ȥʤ�ޤ���

index_name

��������륤��ǥå�����̾���Ǥ��� ����̾���ˤϡ���������̾��ޤ�뤳�ȤϤǤ��ޤ��󡣥���ǥå����ϡ���ˤ��οƥơ��֥��Ʊ���������ޤ˺�������ޤ���

table

����ǥå��������������ơ��֥��̾���Ǥ� (�������޽���̾�ξ��⤢��ޤ�)��

acc_method

����ǥå����˻Ȥ��륢�������᥽�åɤ�̾���Ǥ����ǥե���ȤΥ��������᥽�åɤ� BTREE �Ǥ���PostgreSQL �� 4 �ĤΥ���ǥå����ѥ��������᥽�åɤ��󶡤��ޤ���

BTREE

Lehman-Yao ���¹��� B-trees �μ����Ǥ���

RTREE

Guttman ����ʬ�䥢�르�ꥺ���Ȥä�ɸ�� R-trees �μ����Ǥ���

HASH

Litwin �������ϥå���μ����Ǥ���

GIST

�Ʋ�����ǥå��������ĥ꡼

column

�ơ��֥�����̾���Ǥ���

ops_name

��Ϣ����黻�ҥ��饹�Ǥ����ܺ٤ϲ����򻲾Ȥ��Ʋ�������

func_name

����ǥå����դ�������ͤ��֤��ؿ��Ǥ���

predicate

��ʬ����ǥå��������󼰤�������ޤ���

����

CREATE INDEX

����ǥå����κ���������������֤�����å������Ǥ���

ERROR: Cannot create index:'index_name' already exists.

����ǥå����κ������Բ�ǽ�ʾ�礳�Υ��顼���֤���ޤ���

����

CREATE INDEX�� index_name ����ǥå�������ꤵ�줿 table��˺��ޤ���

Tip: ����ǥå����ϼ�˥ǡ����١�������ǽ����夵���뤿��˻Ȥ��ޤ�����������Ŭ�ڤʻ��Ѥ���ǽ���㲼�ˤĤʤ���ޤ���

�嵭�κǽ�˼�������ʸ�Ǥϡ�����ǥå����Υ����ե�����ɤ���̾�Ȥ��ƻ��ꤵ��ޤ������⤷����ǥå������������᥽�åɤ�ʣ������Ф��륤��ǥå����򥵥ݡ��Ȥ�����ϡ�ʣ���Υե�����ɤ����Ǥ��ޤ���

�嵭����2�ι�ʸ�Ǥϡ�����1�ĤΥơ��֥��1�Ĥޤ���ʣ�������Ŭ�Ѥ����桼������ؿ� func_name �η�̤˽��äƥ���ǥå��������ꤵ��ޤ��������� �ؿ�����ǥå��� �ϡ��̾︵�Ȥʤ�ǡ�����Ŭ�Ѥ���ݤ˲��餫���Ѵ���ɬ�פȤ���롢�黻�Ҥ˴�Ť��ǡ����˹�®�˥�����������Ȥ��˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� ���Ȥ��С�upper(col) �˴ؿ�����ǥå������������ȡ�WHERE upper(col) = 'JIM' ��ǥ���ǥå�������ѤǤ��ޤ���

PostgreSQL �ϥ���ǥå����Ѥ� B-tree��R-tree��hash��GiST �Υ��������᥽�åɤ��Ѱդ��Ƥ��ޤ���B-tree ���������᥽�åɤ� Lehman-Yao ���¹��� B-tree �μ����Ǥ���R-tree ���������᥽�åɤ� Guttman ����ʬ�䥢�르�ꥺ�����Ѥ���ɸ�� R-tree ��������ޤ���hash ���������᥽�åɤ� Litwin �������ϥå���μ����Ǥ����Ȥ�줿���르�ꥺ���󤲤��Τϡ�ñ�ˤ����Υ��������᥽�åɤϤ��٤ƴ�����ưŪ�Ǥ������Ū�˺�Ŭ�������ɬ�סʤ��Ȥ�����Ūhash���������᥽�åɤǤϤ���ޤ��ˤ��ʤ��Ȥ������Ȥ򼨤�����Ǥ���

WHERE �礬¸�ߤ����硢��ʬ����ǥå�������������ޤ�����ʬ����ǥå����ϡ��ơ��֥�ΰ������̾�ϡ��ơ��֥����Ǥ�겿�餫�ζ�̣�Τ�����ʬ�ΤߤΥ���ȥ����ĥ���ǥå����Ǥ����㤨�С���ʧ�Ѥߡ�̤��ʧ����ʸ�����ƤȤ����ơ��֥뤬���ꡢ�ơ��֥����Τ����̤��ʧ����ʸ�γ�礬�����������ġ����ˤ˻��Ѥ�����硢������ʬ�Τߤ˥���ǥå�����������뤳�Ȥ���ǽ����夵���뤳�Ȥ��Ǥ��ޤ�������¾�μ¸���ˡ�Ȥ��Ƥϡ�UNIQUE �դ��� WHERE ����Ѥ��ơ��ơ��֥�ΰ����˰�����������뤳�ȤǤ���

WHERE ��ǻ��Ѥ���뼰�ϥơ��֥���ˤ�����Τߤ򻲾Ȥ��뤳�Ȥ��Ǥ��ޤ�(������������ǥå������줿������ǤϤʤ������Ƥ������Ѥ��뤳�Ȥ��Ǥ��ޤ�)�� ���ߡ����䤤��碌�Ƚ��󼰤ˤĤ��Ƥ⡢WHERE �ǻ��Ѥ��뤳�Ȥ��Ǥ��ޤ���

����ǥå���������ǻ��Ѥ�������Ƥδؿ��ȱ黻�Ҥϡ����� �Ǥʤ���Фʤ�ޤ��� �Ĥޤꡢ���η�̤����ϰ����ˤΤߤ˰�¸����(¾�Υơ��֥�����Ƥ丽����ʤɤ�) ��������αƶ�������ƤϤʤ�ޤ��󡣤������¤ϡ�����ǥå�����ư��Ͻ�ʬ��������줿��ΤǤ��뤳�Ȥ�μ¤ˤ��ޤ��� �桼������δؿ��򥤥�ǥå����˻��Ѥ��뤿�ᡢ�ؿ����������ݡ����δؿ��� IMMUTABLE (����) ���ץ������դ��뤳�Ȥ�˺��ʤ��Dz�������

����ǥå�����������ˤ� DROP INDEX����Ѥ��Ʋ�������

����

PostgreSQL���䤤��碌���ץƥ��ޥ����ϡ�����ǥå������줿°���������Τɤ줫��ޤ���Ӥ˴�Ϣ����Ȥ��Ͼ��B-tree�λ��Ѥ��θ���ޤ��� <, <=, =, >=, >

PostgreSQL���䤤��碌���ץƥ��ޥ����ϡ�����ǥå������줿°���������Τɤ줫��ޤ���Ӥ˴�Ϣ����Ȥ��Ϥ��Ĥ�R-tree�λ��Ѥ��θ���ޤ��� <<, &<, &>, >>, @, ~=, &&

PostgreSQL���䤤��碌���ץƥ��ޥ����ϡ�����ǥå������줿°����=����Ѥ�����Ӥ˴�Ϣ����Ȥ��Ϥ��Ĥ�hash����ǥå����λ��Ѥ��θ���ޤ���

�ƥ��Ȥη�̡�PostgreSQL �Ǥ� hash ����ǥå����ν���®�٤� B-tree ����ǥå�����Ʊ�����뤤���٤���Τǡ��ޤ���ɬ�פʥ���ǥå�������������ӹ��ۻ��֤ˤĤ��Ƥ� B-tree ����ǥå�����꤫�ʤ����뤳�Ȥ�ʬ����ޤ����� �ޤ���hash ����ǥå����ϡ���Ʊ���¹Ծ������ǤΥѥե����ޥ󥹤��ɤ�����ޤ��� ��������ͳ�ˤ�ꡢhash ����ǥå����λ��ѤϿ侩����Ƥ��ޤ���

���ߤǤϡ�B-tree �� gist ���������᥽�åɤΤߤ���ʣ������Ф��륤��ǥå����򥵥ݡ��Ȥ��Ƥ��ޤ���32�ĤޤǤϥǥե���Ȥǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ��ʤ������¤�PostgreSQL���ۤκݤ��ѹ��Ǥ��ޤ��ˡ����ߤǤ� B-tree �Τߤ����������ǥå����򥵥ݡ��Ȥ��Ƥ��ޤ���

�黻�ҥ��饹�ϥ���ǥå����Τ��줾�����˻��ꤹ�뤳�Ȥ��Ǥ��ޤ����黻�ҥ��饹�Ϥ�����Υ���ǥå����ˤ�äƻȤ���黻�Ҥ��̤��ޤ������Ȥ��С�4�Х����������B-tree����ǥå�����int4_ops���饹��Ȥ��ޤ��� ���α黻�ҥ��饹��4�Х�����������Ӵؿ���ޤߤޤ��������Ǥϡ��̾�ե�����ɤΥǡ������Υǥե���ȱ黻�ҥ��饹�Ͻ�ʬ�Ǥ����黻�ҥ��饹������礭�ʰ�̣�ϡ������Ĥ��Υǡ������ˤ�1�İʾ�ΰ�̣��������֤����뤫�⤷��ʤ��Ȥ������ȤǤ������Ȥ��С������ͤޤ��ϼ¿����Τɤ��餫��Ȥä�ʣ�ǿ��Υǡ������򥽡��Ȥ��������⤷��ޤ��󡣤������뤿��ˤ�2�Ĥα黻�ҥ��饹�򤽤Υǡ������������������ǥå�������Ȥ������������饹�����򤷤ޤ����ü����Ū����ı黻�ҥ��饹�⤤���Ĥ�����ޤ���

�ʲ����䤤��碌�Ϥ��٤Ƥ�������줿�黻�ҥ��饹�򼨤��ޤ���

SELECT am.amname AS acc_method,
       opc.opcname AS ops_name
    FROM pg_am am, pg_opclass opc
    WHERE opc.opcamid = am.oid
    ORDER BY acc_method, ops_name;
    

������ˡ

�ʲ���ʸ�ϥơ��֥� films �ˤ���ե������ title �� B-tree ����ǥå�������ޤ���

CREATE UNIQUE INDEX title_idx
    ON films (title);
  

�ߴ���

SQL92

CREATE INDEX �� PostgreSQL �θ����ĥ�Ǥ���

SQL92 �ˤ� CREATE INDEX ���ޥ�ɤϤ���ޤ���