« 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