PostgreSQL ALTER
ALTER TABLE、VIEW、SCHEMA データベースやカラムの追加、変更、削除
名称の変更
SQL
--データベース foo を bar に変更
ALTER DATABASE foo RENAME TO bar;
--テーブル foo を bar に変更
ALTER TABLE foo RENAME TO bar;
--テーブル foo のカラム bar を baz に変更
ALTER TABLE foo RENAME COLUMN bar TO baz;
--ビュー foo を bar に変更
ALTER VIEW foo RENAME TO bar;
--スキーマ foo を bar に変更
ALTER SCHEMA foo RENAME TO bar;
カラムの変更
SQL
--テーブル foo にカラム bar を追加
ALTER TABLE foo ADD COLUMN bar text;
--テーブル foo からカラム bar を削除
ALTER TABLE foo DROP COLUMN bar;
--テーブル foo のカラム bar の型を変更
ALTER TABLE foo ALTER COLUMN bar TYPE integer;
--型変更時のエラーを回避
--ERROR: 列"bar"を型integerにキャストできません
--HINT: 変換を行うためにUSING式を指定してください
ALTER TABLE foo ALTER COLUMN bar TYPE integer
USING bar::integer;
--テーブル foo のカラム bar に default を追加
ALTER TABLE foo ALTER COLUMN bar SET default '1';
--テーブル foo からカラム bar の default を削除
ALTER TABLE foo ALTER COLUMN bar DROP default;
--テーブル foo にカラム bar に 非NULL を追加
ALTER TABLE foo ALTER COLUMN bar SET NOT NULL;
--テーブル foo からカラム bar の 非NULL を削除
ALTER TABLE foo ALTER COLUMN bar DROP NOT NULL;
--テーブル foo に プライマリーキー を追加
ALTER TABLE foo ADD CONSTRAINT foo_pkey PRIMARY KEY (foo);
--テーブル foo から プライマリーキー を削除
ALTER TABLE foo DROP CONSTRAINT foo_pkey;
--テーブル foo のカラム bar に シーケンス を追加
CREATE SEQUENCE bar_seq;
ALTER TABLE foo ALTER bar SET DEFAULT nextval('bar_seq');
--DROP defaultでシーケンスを削除