どんな名前の変更の主キー値Oracle?
-
13-09-2019 - |
質問
当アプリを使用してOracle10gデータベースが複数の主キーに触れますが、エンドユーザーProductcodes。残念ながらこのレーンのようなことが報告およびカスタムスクリプトあるい制御します。いを再定義のキーまたはべての空港を表示一部の空港を表のデータベースの構造です。
現在一部のお客様を変更したいの主キー値です。何を始めたコP23A1すべきであるというCAT23MOD1な実例でご利用いただけます。私の意味があります。)
やめるのか?いうスクリプトの何れることがありますので、最新のparametrized合わせその他のテーブルとキーが外部ツールにとって許容できる、そのような場合というのは存在します。
解決
問題はここからの外部キーを参照するにはPKです。を定義する必要がある外部キーとして"deferrable当初は即時"、"Tom Kyte記事: http://www.oracle.com/technology/oramag/oracle/03-nov/o63asktom.html をまとめて見ることができる...
- 繰り延べの制約
- 親の値を変更
- 変更の子供価値
- コミット変更
シンプルです。
他のヒント
てへ。少しgooglingで表示され、不思議な、Oracleな実装するための更新カスケードのみです。 見回避策google ORACLE ON UPDATE CASCADE.こちらのリンク をカスケードの更新のテーブルセット Oracle.
独自の回答:
がわかれば、正しく変更したい 価値観 データの主キー列ではなく、実際の制約の名前のキーです。
これに該当しない場合でも容易に達成を見直すべての外部キーを参照するには影響を受け主キー制約として ON UPDATE CASCADE
.この場合は変更の主キーの値は、エンジンは自動的に更新すべての関連する値に対する外部キーカラーテーブルです。
ご注意この結果は多くの変更ができ非常に高価なので、生産体制を確立しました。
だいこライブシステムにDDLのテーブル、そして行きたいというだけのオプション(各値のPKを変更したい):
- 挿入の親テーブルのコピーを行PK値交換
- 各子テーブルのアップデートをFK値のPK値
- 削除は、親テーブルの列のPK値
また一覧の親テーブルとのPK値に名称変更すべきでないにくいものに書き手順はこの情報USER_CONSTRAINTSを使うことができますのFK-関連テーブルの指定された親ます。