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