
powergresで開発していて、困った点が出たので質問致します。
質問内容
powergresでalter文でカラムの追加・削除等を行うと、
追加したカラムに紐づくテーブルのデータが消えてしまったりすることはあるのか?
(alter文でカラムを削除した時のデータ以外のデータ)
です。
なぜこんな質問をしたかというと
現在webツールからリクエストを送るとカラムの追加・削除ができるという
処理を作成しようとしています。
環境は
・Java1.5
・powergres5.0
・Apache + tomcat
です
個人的な見解では、データ削除・テーブルごと削除の命令を出さない限り
データは消えることなんてないと思っているのですが・・・・
私の能力ではお客さんに論理的に説明したいのですが、
まだ論理的に説明できない状態です。
・データが消える・消えない。
・その詳細な理由がほしいです。
大変申し訳ございませんが、よろしくお願い致します。
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/ …
わかりにくい文で申し訳ございません・・・。
>PostgreSQLに対しては、どんなalter文が生成されるのでしょうかね???
追加のみです。
>「紐づく」というのは、いろいろな解釈ができてしまうのですが。。。
追加のイベントが起こるテーブルです。
>「詳細な理由」とは、どういう意味でしょうか?
追加した時に他のテーブルは消えないという理由でした。
追加する際、default値がnot nullのデータを追加すると
削除&追加が一時的に発生するという情報がわかり大変参考に
なりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
列が存在しないと言われる
-
DBから日付順に指定件数の削除...
-
alter tableすると、処理が止ま...
-
DB2 「既存カラムへのnot null...
-
長いSQL文を実行するには?
-
COPY時のtimestamp型について
-
0の除算
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessのフィールド数が255しか...
-
ACCESSのクエリで集計で、先頭...
-
ExcelのデータをコピーでACCESS...
-
エクセルグラフの凡例スペース
-
異なるサーバのDBデータ同士を...
-
Access テキスト型に対する指定...
-
Oracle 2つのDate型の値の差を...
-
Accessクエリーで両方のテーブ...
-
ACCESSでの改行コード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
INSERTできるレコード数を制限...
-
PostgreSQLで表結合+DELETEしたい
-
長いSQL文を実行するには?
-
DBから日付順に指定件数の削除...
-
動的に生成したカラムを使ったF...
-
0の除算
-
■一番最初に値が入っている(Nul...
-
COPY時のtimestamp型について
-
alter tableすると、処理が止ま...
-
SQLで特定データがNULLなら別デ...
-
constraint と index の違い
-
SQLite:項目が存在しない場合の...
-
Oracleの制約構文に関して
-
INSERTできない
-
powergres(postgres)にalter文...
-
DB2でUNIQUE制約を削除したい
-
SQLiteに関数追加
-
DB2 「既存カラムへのnot null...
-
複数キーワードでのあいまい検索
おすすめ情報