• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:powergres(postgres)にalter文を使うとデータが消えることありますか?)

powergresにalter文を使うとデータが消えることありますか?

このQ&Aのポイント
  • powergresでalter文でカラムの追加・削除等を行うと、追加したカラムに紐づくテーブルのデータが消えてしまったりすることはあるのか?
  • 現在webツールからリクエストを送るとカラムの追加・削除ができる処理を作成しようとしています。
  • 個人的な見解では、データ削除・テーブルごと削除の命令を出さない限りデータは消えることはないと思っているのですが、論理的な説明ができません。データが消える・消えない詳細な理由が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

PostgreSQLの話でいいのでしょうか? >powergresでalter文でカラムの追加・削除等を行うと PostgreSQLに対しては、どんなalter文が生成されるのでしょうかね??? >追加したカラムに紐づくテーブルのデータが消えてしまったりすることはあるのか? (alter文でカラムを削除した時のデータ以外のデータ) 「紐づく」というのは、いろいろな解釈ができてしまうのですが。。。 列の追加や削除時、そのテーブルの他の列のことですか? それとも、外部キー等のことでしょうか? default値がnullの列の追加や削除では、そのテーブルの行削除や他の列が影響を受けることはありません。 一方、default値がnot nullの場合は、全行にdefault値を入れるために、削除&追加が一時的に発生するようです。 後者は、RDBMSによっては、「格納済の行がある状態でのnot nullの列追加」を禁止しているものもあります。 >・その詳細な理由がほしいです。 「詳細な理由」とは、どういう意味でしょうか? 標準SQLやPostgreSQLが、そういう仕様になっている理由ということですか? 「仕様を決めた人に聞いてください」と回答したくなってしまいますが。。。 それとも、「その仕様が書かれているマニュアル等の箇所」という意味でしょうか? 階層型DBやネットワーク型DBでは、レコードの定義やデータをそのままに残しての列の追加や削除という概念がありませんでした。 RDBでは、定義やデータ移行などの方法を大幅に柔軟にしています。その中の一つということでは? http://www.postgresql.jp/document/pg820doc/html/sql-altertable.html

shoboiSE
質問者

お礼

わかりにくい文で申し訳ございません・・・。 >PostgreSQLに対しては、どんなalter文が生成されるのでしょうかね??? 追加のみです。 >「紐づく」というのは、いろいろな解釈ができてしまうのですが。。。 追加のイベントが起こるテーブルです。 >「詳細な理由」とは、どういう意味でしょうか? 追加した時に他のテーブルは消えないという理由でした。 追加する際、default値がnot nullのデータを追加すると 削除&追加が一時的に発生するという情報がわかり大変参考に なりました。 本当にありがとうございました。

関連するQ&A