PostgreSQL 13にPRIMARY KEY制約を設定する方法
環境
Windows10 64bit
PostgreSQL 13.2
書式
CREATE TABLE [ IF NOT EXISTS ] テーブル名 (
カラム名 data_type PRIMARY KEY [, … ]
)
使用例
1.テーブルを作成します
testdb=# create table cft.empl (ename varchar(15) primary key, memo varchar(15)); CREATE TABLE
2.¥d コマンドを使って作成したテーブルのカラムの情報を取得します
testdb=# \d cft.empl テーブル"cft.empl" 列 | タイプ | 照合順序 | Null 値を許容 | デフォルト -------+-----------------------+----------+---------------+------------ ename | character varying(15) | | not null | memo | character varying(15) | | | インデックス: "empl_pkey" PRIMARY KEY, btree (ename)
3.引数に¥d コマンドで表示されたインデックス名を確認します
testdb=# \d cft.empl_pkey インデックス"cft.empl_pkey" 列 | タイプ | キー? | 定義 -------+-----------------------+-------+------- ename | character varying(15) | はい | ename プライマリキー, btree, テーブル"cft.empl"用
4.テストデータをテーブルに挿入します
testdb=# insert into cft.empl values('山崎’, '1100’), ('大阪’, '1101’), ('大橋’, '1102’);
INSERT 0 3
5.既にテーブルに格納されている値と同じ値を指定してデータを追加します
testdb=# insert into cft.empl values('山崎’, '1100’), ('大阪’, '1101’), ('大橋’, '1102’);
ERROR: 重複したキー値は一意性制約"empl_pkey"違反となります
DETAIL: キー (ename)=(山崎) はすでに存在します。