オープンソースのERP iDempiere(アイデンピエレ)の開発を行っていると、複合ユニーク制約(一意制約)をかけたい事があります。ここでは、PostgreSQLで複合ユニーク制約を付加する方法を調査及び研究し、その成果をまとめています。
複合ユニーク制約
複合ユニーク制約の付与
ALTER TABLE テーブル名 ADD CONSTRAINT 制約名称 UNIQUE(カラム1,カラム2,...);
(複合)ユニーク制約の解除
ALTER TABLE テーブル名 DROP CONSTRAINT 制約名称;
複合ユニークインデックス
複合ユニークインデックスの付与
◆BTREE インデックスの例
CREATE UNIQUE INDEX インデックス名称 ON テーブル名 USING BTREE(カラム1 , カラム2,…);