列を削除する変更

変更前にある legacy 列を変更後で消した例です。DROP COLUMN の例と、値が読めなくなるデータ喪失の警告が出ることを確かめます。

入力

変更前の CREATE TABLE

CREATE TABLE logs (id integer, msg text, legacy text);

変更後の CREATE TABLE

CREATE TABLE logs (id integer, msg text);

結果の見せ方

差分の表

結果

エラー 0 件・警告 1 件・情報 0 件

指摘(エラー・警告・情報)

  • 警告 変更前 1 行目 列 legacy を削除すると、その列の値は SQL から読めなくなり、その列を含む索引と表の制約も一緒に消えます。名前を変えただけなら DROP ではなく RENAME COLUMN を使ってください(このツールは名前の変更を見分けません)。依存する view や外部キーがあると既定の RESTRICT で失敗します(ALTER TABLE の DROP COLUMN)。
追加した列0 個
削除した列1 個
型の変更0 個
NOT NULL の変更0 個

列の差分

列の差分
差分列変更前変更後ALTER TABLE の例
削除legacytext(なし)ALTER TABLE logs DROP COLUMN legacy;

検算(この結果になる理由)

変更前にだけ legacy 列があるので削除 1 件で、DROP COLUMN legacy の例になります。削除した列の値は SQL から読めなくなる(ALTER TABLE の DROP COLUMN)ため、警告が 1 件出ます。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 生成する ALTER TABLE は参考の例です。本番で実行する前に、バックアップと検証環境での確認を必ず行ってください。
  • ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。

ほかの入力例