DBMotoではソース(複製元)とターゲット(複製先)のテーブルでフール度の数が異なっている場合でも問題なくレプリケーションを定義することは可能です。しかしながら、ターゲットにレプリケーション対象外のフィールドが存在する場合、そのフィールドがnot null制約になっていると、レコード登録時にnot null制約エラーになってしまう場合があります。
回避方法として、DB側でデフォルト値を予め設定しておく方法もありますが、DBMotoにて決まった値や更新日時を挿入することも可能です。DBMotoで設定する場合は、Expressionという機能を使用します。
●設定例
以下のようなマッピング設定とします。右側のターゲットの「other」「other2」がソースにはないフィールドであり、マッピング対象外となっています。
ターゲットの該当フィールドを右クリックし、「Map to Expression」を選択します。
固定値を設定する例です。
システム日時を設定する場合はNowを指定します。
設定後は以下のような表示になります。
関連したトピックス
- レプリケーションの際にnullを特定の値に変換する方法 その1【リアルタイムレプリケーションツールDBMoto】
- ジュリアンデートのレプリケーション【リアルタイムレプリケーションツールDBMoto】
- レコードの前後の空白を除去(trim)してレプリケーションする方法【リアルタイムレプリケーションDBMoto】
- Syniti Data Replication (旧DBMoto)でのスクリプトの書き方④:レプリケーションスクリプト
- DBMotoを使用してデータベース変更用の監査ログの作成方法【リアルタイムレプリケーションツールDBMoto】
- APIからレプリケーションの最新の実行件数を取得するサンプルスクリプト[C#] [Syniti DR (DBMoto)]
- リフレッシュモード時のSQL Filter の記載方法【リアルタイムレプリケーションツールDBMoto】
- APIからリフレッシュを実行するサンプルスクリプト[C#] [Syniti DR (DBMoto)]
- クエリ実行とデータベースパフォーマンスの理解 ,そしてそれらがアプリケーションに与える影響 [DPA]
- [DBMoto API]外部からレプリケーションやグループを開始・停止するサンプルC#プログラム