1. ホーム
  2. sql

[解決済み】PostgresqlデータベースでNULLを許可しないカラムを追加するにはどうすればよいですか?

2022-04-18 04:21:56

質問

以下のクエリ(インターネット用にサニタイズされています)を使用して、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を実行しても同じエラーが発生しました。

解決方法は?

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

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;