複製をセットアップする際にレコードをタッチしなければいけない理由
日付 | 2010/11/11 |
---|---|
ID | 76193 (英語原文参照) |
バージョン | v12 |
プラットフォーム | Mac/Win |
同期と複製のセットアップは, 比較的容易な手順です。プライマリーキーを定義し, 複製を有効にするだけで, 開始することができます。ただし, すでにレコードが登録されている既存のテーブルの場合, それだけではデータの転送が始まりません。見落とされそうなポイントですが, 既存のレコードが複製されるためには, それらのレコードをタッチする必要があります。これは, ストラクチャ定義の途中変更全般(フィールドダイプを変えた後, レコードをロードして再保存するまでは既存のデータは変わらない)に共通していえることです。
最初のSQLステートメントは, 既存のGroup_IDフィールドをこのテーブルのプライマリーキーに定義しています。
次のステートメントは, 複製を有効にするためのものです。しかし, ここで複製を実行しても, 何も起こりません。
最後のステートメントは, 既存の全レコードをタッチするためのもので, これによりデータの複製を司るもの(具体的にはスタンプ)が生成されます。
このことは, 複製の設定をリセットする際に役立ちます。たとえば, 次のようなコードで複製をリセットすることができます。次に開始スタンプ0から複製を実行すれば, すべてのレコードが転送の対象になります。
Begin SQL ALTER TABLE Groups DISABLE REPLICATE; ALTER TABLE Groups ENABLE REPLICATE; UPDATE Groups SET Group_ID = CONCAT(Group_ID,''); End SQL
4DSyncHeaderおよび4DSyncDataファイルは, 絶対に削除しないでください。ファイルを削除することは複製のリセットにはなりません。それはむしろ複製の設定を破壊する行為です。