このレッスンでは、統合データベースに接続し、CustomerProducts テーブルを作成し、地域情報を含めるように Customers テーブルを変更します。
前提条件
このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:スキーマの設計を参照してください。
このレッスンでは、このチュートリアルの冒頭の「権限」セクションに一覧になっているロールおよび権限を持っていることを前提としています。 チュートリアル:SQL Anywhere 統合データベースでの Mobile Link の使用
内容と備考
同期システムでは、テーブルのプライマリキーは、異なるデータベース内の同じローを識別する唯一の方法であり、競合を検出する唯一の方法です。使用する各テーブルには、プライマリキーが必要です。プライマリキーが更新されることはありません。また、1 つのデータベースに挿入されたプライマリキーの値が別のデータベースに挿入されないようにする必要があります。
あとのレッスンでは、統合スキーマからリモートスキーマを作成するため、リモートスキーマは統合スキーマと同じプライマリキーを持つことになります。
プライマリキーがすべてのデータベースに対してユニークになるようにカラムが選択されています。Customers テーブルでは、プライマリキーは ID カラムで構成されています。リモートの Customers テーブルに挿入されるすべての値には、ユニークな顧客 ID 番号が必要です (地域の値は常に同じです)。これにより、リモートの各 Customers テーブルで一意性が確保されます。統合データベースの Customers テーブルのプライマリキーは、複数の販売担当者がデータがアップロードした場合の競合を防止する役割があります。ある地域からの各アップロードは、地域値が異なるので、他の地域とは異なっています。
[スタート] » [プログラム] » [SQL Anywhere 16] » [管理ツール] » [Sybase Central] をクリックします。
[接続] » [SQL Anywhere 16 に接続] をクリックします。
[接続] ウィンドウで次のタスクを実行します。
[アクション] ドロップダウンリストで、[ODBC データソースを使用した接続] を選択します。
[ODBC データソース名] フィールドに SQL Anywhere 16 Demo と入力します。
[接続] をクリックします。
Interactive SQL の統合データベースに接続します。
コマンドプロンプトで次のコマンドを実行します。
dbisql -c "DSN=SQL Anywhere 16 Demo" |
Interactive SQL で、次の文を実行し、CustomerProducts テーブルを作成してデータを挿入します。
CREATE TABLE CustomerProducts (ID int default AUTOINCREMENT PRIMARY KEY, SalesOrderID int NOT NULL, CustomerID int NOT NULL, ProductID int); INSERT INTO CustomerProducts (SalesOrderID,CustomerID,ProductID) SELECT SalesOrders.ID, SalesOrders.CustomerID, SalesOrderItems.ProductID FROM SalesOrders, SalesOrderItems WHERE SalesOrders.ID = SalesOrderItems.ID; |
Interactive SQL で、次の文を実行し、Customers テーブルのそれぞれの顧客に地域情報を追加します。
ALTER TABLE Customers ADD Region VARCHAR(255); UPDATE Customers SET Region = (SELECT TOP 1 SalesOrders.Region FROM SalesOrders WHERE Customers.ID = SalesOrders.CustomerID ORDER BY Region); COMMIT; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |