【PostgreSQL】カラムを追加、削除する、変更する(NOT NULL制約、デフォルト値、外部キー)

2020年11月17日PostgreSQL構文

スポンサーリンク

テーブルにカラムを追加する、定義を変更する

ここではALTER TABLE文を使った次の方法を説明します。

・テーブルへ列を追加、削除する

・NOT NULL制約を追加、削除する

・デフォルト値を追加、削除する

・外部キーを追加、削除する

 

 

テーブルにカラムを追加、削除する

テーブルに列を追加、削除する方法です。

--列を追加する構文
ALTER TABLE テーブル名 add 列名 型;

--例:「m_school」テーブルに列「address」を追加する
ALTER TABLE m_school add address character varying(80);


--列を削除する構文
ALTER TABLE テーブル名 DROP COLUMN 列名;

--例:「m_school」テーブルの列「address」を削除する
ALTER TABLE m_school DROP COLUMN address;

 

 

Not Null制約を追加、削除する構文

テーブルの列にNot Null制約を追加、削除する方法です。

--Not Null制約の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET NOT NULL;

--例:「m_school」テーブルの列「hoge」をNOT NULLにする
--すでにNullが入っている場合はエラーになるので、値を入れてから実行します
ALTER TABLE m_school ALTER COLUMN hoge SET NOT NULL;


--Not Null制約の削除
ALTER TABLE テーブル名 ALTER COLUMN 列名 DROP NOT NULL;

--例:「m_school」テーブルの列「hoge」をNOT NULL制約を削除する
ALTER TABLE m_school ALTER COLUMN hoge DROP NOT NULL;

 

 

デフォルト値(初期値)を追加、削除する

テーブルの列にデフォルト値を追加、削除する方法です。

--デフォルト値の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET DEFAULT デフォルト値;

--例:「m_school」テーブルの列「hoge_flg」を初期値「1」で設定する
ALTER TABLE m_school ALTER COLUMN hoge_flg SET DEFAULT 1;


--デフォルト値の削除
ALTER TABLE テーブル名 ALTER COLUMN 列名 DROP DEFAULT;

--例:「m_school」テーブルの列「hoge_flg」を初期値「1」で設定する
ALTER TABLE m_school ALTER COLUMN hoge_flg DROP DEFAULT;

 

 

外部キー制約を追加、削除する

テーブルに外部キーを追加・削除する方法です。

--外部キー制約の追加
ALTER TABLE テーブル名
ADD FOREIGN KEY (外部キーを付けるテーブルの列名) 
REFERENCES 参照先テーブル名 (参照先列名);

/*例:「department」テーブルに対する外部キーを、
列「department_code」で設定する*/
ALTER TABLE employee ADD FOREIGN KEY (department_code) 
REFERENCES department (department_code);


--外部キー制約の削除
ALTER TABLE テーブル名 DROP CONSTRAINT 外部キー名;

--例:「employee」テーブルの外部キー「employee_department_code_fkey」を削除する
ALTER TABLE employee DROP CONSTRAINT employee_department_code_fkey;

 

 

構文まとめを書いています。ぜひ一度見てみて下さい

「基本構文・こんな時どう書くんだっけ?」をまとめました