Postgresql データベースに null を許可しない列を追加するにはどうすればよいでしょうか? 質問する

Postgresql データベースに null を許可しない列を追加するにはどうすればよいでしょうか? 質問する

次のクエリ (インターネット用にサニタイズ済み) を使用して、Postgresql データベースに新しい「NOT NULL」列を追加しています。

ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL;

このクエリを実行するたびに、次のエラー メッセージが表示されます。

ERROR:  column "mycolumn" contains null values

困惑しています。どこが間違っているのでしょうか?

注: 主に pgAdmin III (1.8.4) を使用していますが、ターミナル内から SQL を実行したときに同じエラーが発生しました。

ベストアンサー1

デフォルト値を設定する必要があります。

ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL DEFAULT 'foo';

... some work (set real values as you want)...

ALTER TABLE mytable ALTER COLUMN mycolumn DROP DEFAULT;

おすすめ記事