[PostgreSQL]UNIQUE を指定してインデックスを作成する方法

環境
PostgreSQL 9.6.5
Windows 10 Home 64bit

書式
CREATE UNIQUE INDEX [ name ] ON [ ONLY ] table_name
( column_name [, …] )
CREATE INDEX コマンドを実行する時に UNIQUE を指定すると UNIQUE インデックス(一意インデックス)を作成します。

使用例
1.okschemaスキーマの中に次のようなテーブルを作成します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
test2db=# create table okschema.prodtbl (proid integer,pname varchar(20),price integer);
CREATE TABLE
test2db=# create table okschema.prodtbl (proid integer,pname varchar(20),price integer); CREATE TABLE
test2db=# create table okschema.prodtbl (proid integer,pname varchar(20),price integer);
CREATE TABLE

2.作成したテーブルのpname カラムを対象として UNIQUE インデックスを作成します。
書式
create unique index on スキーマ名.テーブル名 (列名);

操作例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
test2db=# create unique index on okschema.prodtbl (pname);
CREATE INDEX
test2db=# create unique index on okschema.prodtbl (pname); CREATE INDEX
test2db=# create unique index on okschema.prodtbl (pname);
CREATE INDEX

3.作成されているインデックスの情報を確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
test2db=# \d okschema.prodtbl
テーブル"okschema.prodtbl"
| タイプ | 照合順序 | Null 値を許容 | デフォルト
-------+-----------------------+----------+---------------+------------
proid | integer | | |
pname | character varying(20) | | |
price | integer | | |
インデックス:
"prodtbl_pname_idx" UNIQUE, btree (pname)
test2db=# \d okschema.prodtbl テーブル"okschema.prodtbl" 列 | タイプ | 照合順序 | Null 値を許容 | デフォルト -------+-----------------------+----------+---------------+------------ proid | integer | | | pname | character varying(20) | | | price | integer | | | インデックス: "prodtbl_pname_idx" UNIQUE, btree (pname)
test2db=# \d okschema.prodtbl
                      テーブル"okschema.prodtbl"
  列   |        タイプ         | 照合順序 | Null 値を許容 | デフォルト
-------+-----------------------+----------+---------------+------------
 proid | integer               |          |               |
 pname | character varying(20) |          |               |
 price | integer               |          |               |
インデックス:
    "prodtbl_pname_idx" UNIQUE, btree (pname)

 

PostgreSQL

Posted by arkgame