データベースデータのマージ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データベースデータの比較 >

データベースデータのマージ

データ比較の実行後 (次を参照: データベースデータの比較の実行)、オプションで差分をデータベースの左側から右側へ、または、右側から左側にマージすることができます。 差分はデータベース全体、テーブル、または、行レベルでマージすることができます。

 

マージ操作を直接、または、マージスクリプトを使用して行うことができます。 マージ スクリプトはデータベース、 テーブル、または、行レベルで生成することができます。マージ スクリプトに加え、マージの効果を元に戻すために使用される復元スクリプトを生成することもできます。 復元スクリプトをデータベース、または、テーブル レベルで生成することができます。

 

デフォルトでは、 データベース トランザクションとエラー時のロールバックはデータマージの際に有効化されています (データベースがこの操作をサポートすることが前提とされています)。次を参照してください: データベースデータの比較 オプション

 

メモ:互換性の無いデータ型の列をマージすることは不可能です (例えば、 文字列を数値型にマージするなど)。また、マージは一方の方向にのみ実行することが可能な場合があります (例えば、数値型は、文字列に変換することができますが、その逆は不可能です)。

 

DatabaseSpy は互換性の無いマージを無視し、このような状況が発生した場合マージ前に通知します。 比較結果ビュー内で、マージは1つの方向にのみ実行可能で、小さな赤い矢印が緑の矢印と組み合わされて表示されています。緑の矢印の方向は、マージが可能な方向を示しています。 例えば、 下のイメージでは、後者が数値であるために、 (「text」 型) description 列は quantity 列 にマップすることはできません。 しかしながら、 quantity 列は description 列にマップすることが可能です。

dbdiff_compare_data_09

比較結果ビュー

 

マージスクリプトの生成

 

マージ スクリプトを左側の または 「右側」 データベース コンポーネントのために以下のように生成することができます:

 

1.データベースデータの比較を行います (次を参照: データベースデータの比較の実行)。
2.以下のいずれかを行います:

 

データベースレベルでスクリプトを生成するには、比較ウィンドウ内の使用されていないエリアを右クリックし、ic_merge-selected-left2right 「すべてを左側から右側へマージ」をクリックします。
テーブルレベルでスクリプトを生成するには、比較ウィンドウ内のテーブルを右クリックし、ic_merge-selected-left2right 「選択範囲を左側から右側へマージ」をクリックします。
行レベルでスクリプトを生成するには、比較結果ビュー内の行を右クリックし、ic_merge-selected-left2right 「左側から右側へデータをマージする」をクリックします。

dbdiff_compare_data_10

3.「マージ スクリプト表示」をクリックします。

 

メモ:上のコマンドは左側から右側へ変更をマージすることを想定しています。 それ以外の場合、 対応するリバース (右側から左側) コマンドを使用してください。

 

 

復元スクリプトの生成

 

マージ スクリプトの影響を元に戻す場合、復元スクリプトを生成する必要があります。 復元スクリプト左側の または 「右側」 データベース コンポーネントのために復元スクリプトを下記のとおり生成することができます:

 

1.データベースデータの比較を行います (次を参照: データベースデータの比較の実行).
2.以下のいずれかを行います:

 

データベースレベルでスクリプトを生成するには、 比較ウィンドウ内の使用されていないエリアを右クリックし、 「SQL とデータ | 復元 スクリプトの表示」 (適用できる場合、「左側」、または、「右側」)を選択します。
テーブルレベルでスクリプトを生成するには、 比較ウィンドウ内のテーブルを右クリックし、 「SQL とデータ | 復元 スクリプトの表示」 (適用できる場合、「左側」、または、「右側」)を選択します。

 

 

直接マージを実行する

 

1.データベースデータの比較を行います (次を参照: データベースデータの比較の実行)。
2.以下のいずれかを行います:

 

データベースレベルで差分をマージするには、比較ウィンドウ内の使用されていないエリアを右クリックし、 「すべてを左側から右側へマージ」を選択します。
テーブルレベルで差分をマージするには、 比較ウィンドウ内のテーブルを右クリックし、 「選択範囲を左側から右側へマージ」を選択します。
行レベルで差分をマージするには、 比較結果ビュー内の行を右クリックし、 ic_merge-selected-left2right 「左側から右側へデータをマージする」を選択します。

dbdiff_compare_data_11

 

3.「はい」 をクリックします。

 

メモ:上のコマンドは、左側から右側へ変更をマージすることを希望していることを想定しています。 それ以外の場合、 対応するリバース (右側から左側) コマンドを使用してください。

 

 

マージを元に戻す

 

マージを元に戻すには、データベースに対して復元スクリプトを実行します (復元スクリプトの生成に関する命令を参照してください)。


(C) 2019 Altova GmbH