次のクエリ (インターネット用にサニタイズ済み) を使用して、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;