列の追加・削除

例)mst_tableにarea_codeを追加、削除


追加:ALTER TABLE mst_table ADD COLUMN area_code SMALLINT;

※場所指定はできない(末尾に追加)


削除:ALTER TABLE mst_table DROP COLUMN area_code;


<裏技 〜列の追加箇所指定〜 >
Postgresは列の追加場所を指定できないが、一旦、追加したい場所以降の列を削除し、追加したい順番に並べ直して列追加すれば可能。あらかじめデータを退避しておき、削除した列に退避したデータを流し込む。


以下のような列並びのテーブルがあるとする
col1, col2, col3, col4, col5, col6
→col4とcol5の間にcol7を追加したい

[やり方]
1.あらかじめテーブルの値を退避しておく
2.col5, col6を削除
 →col1, col2, col3, col4
3.col7, col5 , col6の順番に追加
 →col1, col2, col3, col4, col7, col5, col6 ※この段階ではcol7以降のデータは空
4.あとは以下に、退避したデータを流し込めばOK
 col7, col5, col6
※NOT NULL制約がある場合などは、まず制約をつけずに追加し、後で制約をつける