ALTER TABLE の例をテキストで見る
DEFAULT つきで NOT NULL の列を足した例を、テキスト表示で出します。DEFAULT が付いていれば追加時の警告が出ず、そのまま ADD COLUMN に写ることを確かめます。
入力
変更前の CREATE TABLE
CREATE TABLE tasks (id integer);
変更後の CREATE TABLE
CREATE TABLE tasks (id integer, done boolean NOT NULL DEFAULT false);
結果の見せ方
ALTER TABLE の例(テキスト)
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 追加した列 | 1 個 |
|---|---|
| 削除した列 | 0 個 |
| 型の変更 | 0 個 |
| NOT NULL の変更 | 0 個 |
列の差分
-- 参考の例です。実行前に必ずバックアップとデータの確認をしてください。 ALTER TABLE tasks ADD COLUMN done boolean NOT NULL DEFAULT false;
検算(この結果になる理由)
変更後にだけ done 列があり、NOT NULL と DEFAULT false が付いています。DEFAULT があれば既存の行も NULL にならないので警告は 0 件で、ADD COLUMN done boolean NOT NULL DEFAULT false の 1 文がテキストで出ます。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 型は表記が同じかどうかで比べます。integer と int、varchar と character varying のような別名は同じ型と見なさず、型の変更として表示します。
- 列の名前の変更は見分けられず、削除と追加として表示します(データを残すなら RENAME COLUMN を使います)。
- 主キー・UNIQUE・CHECK・外部キー・索引・DEFAULT の変更は差分に含めません。表の制約が違うときは情報で知らせます。
- 生成する SQL は参考の例です。USING 式・データの移行・ロックの影響は自動では考えません。
ご利用にあたって
- 生成する ALTER TABLE は参考の例です。本番で実行する前に、バックアップと検証環境での確認を必ず行ってください。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。