4D v16

SQLを使用した複製

ホーム

 
4D v16
SQLを使用した複製

SQLを使用した複製  


 

 

4DはSQLを使用して2つ以上の4Dデータベース間でデータを同期する新しいメカニズムを提供します。このメカニズムを使用して1つ以上のミラーデータベースをセットアップし、データの可用性を保証することができます。

これは以下のように動作します: ローカルデータベースがリモートソースデータベースのデータをローカルに複製します。更新はローカルデータベースが定期的にリモートデータベースからデータを取得することで実行されます。複製はテーブルレベルで行われます。リモートデータベーステーブルのデータをローカルデータベースのテーブルに複製します。
これはスタンプおよびSQLコマンドによって可能となります。

ストラクチャエディタでテーブルプロパティを使用してリモートおよびローカルデータベースで複製メカニズムを有効にできます。ローカル側ではSQLのREPLICATEコマンドを使用してリモートデータベースのテーブルからデータを取得し、このデータをローカルデータベースのテーブルに統合します。SQLのSYNCHRONIZEコマンドを使用すれば2つのテーブルを同期できます。

4Dデータベースのそれぞれのテーブルに3つの"仮想"フィールド、__ROW_ID、__ROW_STAMP、そして__ROW_ACTIONが割り当てられることがあります。これらのフィールドは特別なプロパティを持つため、"標準"のフィールドと区別するために"仮想"と呼ばれます。これらのフィールドは自動で値が割り当てられ、ユーザーは値を読むことはできますが書き込むことはできず、そしてデータベースのシステムテーブルには現れません。以下の表はこれらのフィールドと利用モードを説明しています:

仮想フィールド内容利用
__ROW_IDInt32レコードのIDREPLICATESYNCHRONIZEを除くすべてのSQLステートメント
__ROW_STAMPInt64レコード複製情報すべてのSQLステートメント
__ROW_ACTIONInt16レコードに対して実行されたアクション: 1 = 追加または更新、2 =削除 REPLICATEまたはSYNCHRONIZEのみ

複製メカニズムが有効になると、レコードが作成、更新、削除されるたびに対応する情報が自動でこのレコードの仮想フィールドに保存されます。

複製を可能にするメカニズムはデフォルトで無効になっています。複製や同期を行うテーブルごとに、リモートおよびローカルのデータベース両方で、明示的にこれを有効にしなければなりません。

メカニズムを有効にしても複製自身が実行されるわけではない点に留意してください。データが実際にローカルまたは同期データベースに複製されるためには、REPLICATESYNCHRONIZEコマンドを使用しなければなりません。

(ローカルおよびリモートデータベース上で) 内部的な複製メカニズムをテーブル毎に有効にするためには、テーブルインスペクタ内の複製を有効にするテーブルプロパティを使用します:

Note: 複製メカニズムが動作するようにするためには、リモートおよびローカルデータベース側でテーブルの主キーを指定しなければなりません。このキーはストラクチャエディタまたはSQLコマンドで指定できます。主キーが設定されていない場合、このオプションは選択することができません。

このオプションがチェックされると、4Dはテーブルのレコードを複製するために必要な情報 (特にテーブルの主キーに基づき) を生成します。 この情報は仮想 __ROW_STAMP と__ROW_ACTION フィールドに格納されます。

Note: SQLのCREATE TABLEALTER TABLEコマンドを使用して複製情報の作成を有効にしたり無効にしたりできます。これを行うためにはENABLE REPLICATEDISABLE REPLICATEキーワードを使用します。

警告: このオプションをチェックすると、複製メカニズムに必要な情報が公開されるようになります。データベース保護のため、 -- データが公開されている場合にそこへのアクセスを制限するのと同様に -- この情報へのアクセスを制限しなければなりません。結果、このオプションを使用して複製システムを実装する場合、以下の点を確認しなければなりません:

データベースごとのテーブルごとに複製メカニズムが有効になると、ローカルデータベースからSQLのREPLICATEコマンドを使用できます。詳細はこのコマンドの説明を参照してください。



参照 

REPLICATE

 
プロパティ 

プロダクト: 4D
テーマ: 4DでSQLを使用する

 
履歴 

 
ARTICLE USAGE

SQLリファレンス ( 4D v16)