PostgreSQLでNOT NULL制約をつけたり外したり

こんにちは、さるまりんです。

テーブルを作ってデータを投入。なぜかうまくいかなくて調べてみたら、ある項目が必須と思いNOT NULL制約をつけてたんだけど、実は必須ではなかった。NOT NULL制約を外す必要がありますね。PostgreSQLでは次のようにします。

NOT NULL制約の削除

ALTER TABLE [テーブル名] ALTER COLUMN [カラム名] DROP NOT NULL;

これで該当カラムにデータが存在しなくても投入可能になります。

逆に厳密にこの項目は必須ですとNOT NULL制約をつけたい時はどうするでしょうか?

NOT NULL制約の追加

ALTER TABLE [テーブル名] ALTER COLUMN [カラム名] SET NOT NULL;

設計の最初の段階で全ての項目がどうあるべきってなかなか把握しきれないので、後から変更することはよくあります。そんな時によくやるオペレーションなので覚えていると便利です。

が、全部覚えるのも難しい〜。データベース製品ごとに構文が違ったりします。

上記はPostgreSQLでの方法です。MySQLなど他のデータベースでは違うやり方をします。それはまた改めて書かせてもらいますね。

読んでくださってありがとうございます。

それではまた!