« PHP:is_writable()関数 | メイン | PostgreSQL:テーブルを作成 CREATE TABLE »

2006年12月19日

PostgreSQL:既存のテーブルの定義を変更 ALTER TABLE

ALTER TABLE は列の追加や削除、名前の変更、プライマリキー制約の追加など、既存のテーブルの定義を変更します。

integer型の列をテーブルに追加します。

ALTER TABLE shopinfo ADD COLUMN shop_name integer;

※not null制約は一度に加えることができません。

テーブルから列を削除します。

ALTER TABLE shopinfo DROP COLUMN address RESTRICT;

既存の列の名前を変更します。

ALTER TABLE shopinfo RENAME COLUMN address TO city;

既存のテーブルの名前を変更します。

ALTER TABLE shopinfo RENAME TO shopdata;

列に非NULL制約を付与します。

ALTER TABLE shopinfo ALTER COLUMN tel SET NOT NULL;
列から非NULL制約を削除します。

ALTER TABLE shopinfo ALTER COLUMN tel DROP NOT NULL;

テーブルにCHECK制約を付与します。

ALTER TABLE shopinfo ADD CONSTRAINT zipcheck CHECK (char_length(zipcode) = 5);

テーブルとその子テーブルからCHECK制約を削除します。

ALTER TABLE shopinfo DROP CONSTRAINT zipcheck;

テーブルに外部キー制約を付与します。

ALTER TABLE shopinfo ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses (address) MATCH FULL;

テーブルに(複数列の)一意性制約を付与します。

ALTER TABLE shopinfo ADD CONSTRAINT shop_id_zipcode_key UNIQUE (shop_id, zipcode);

自動的に命名されるプライマリキー制約をテーブルに付与します。
※テーブルは1つのみのプライマリキーしか持つことができません。

ALTER TABLE shopinfo ADD PRIMARY KEY (shop_id);

投稿者 wing : 2006年12月19日 23:04

コメント