同期システムでは、テーブルのプライマリキーは、異なるデータベース内の同じローを識別する唯一の方法であり、競合を検出する唯一の方法です。使用する各テーブルには、プライマリキーが必要です。プライマリキーが更新されることはありません。また、1 つのデータベースに挿入されたプライマリキーの値が別のデータベースに挿入されないようにする必要があります。
前提条件
このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:スキーマの設計を参照してください。
このレッスンでは、このチュートリアルの冒頭の「パーミッションと権限」セクションに一覧になっているロールおよび権限を持っていることを前提としています。 チュートリアル:Oracle Database 10g での Mobile Link の使用
内容と備考
ユニークなプライマリキーを生成する方法は複数あります。このチュートリアルでは、簡単に操作を行うため、複合プライマリキー方式を使用します。この方式では、統合データベースとリモートデータベースにまたがってユニークな複数のカラムを使用してプライマリキーを作成します。
コマンドプロンプトで次のコマンドを実行します。
sqlplus SYS/your password for sys as SYSDBA |
SALES_REP_ID に追加する値は HR.EMPLOYEES テーブルに存在する必要があります。ORDERS_SALES_REP_FK 外部キーによりこのルールが強制的に適用されます。次の文を実行して外部キーを削除します。
ALTER TABLE OE.ORDERS DROP CONSTRAINT ORDERS_SALES_REP_FK; |
SALES_REP_ID カラムには NULL 値が含まれているため、このカラムをプライマリキーとして追加することはできません。このチュートリアルでは、NULL 値は 1 に置き換えます。次の文を実行します。
UPDATE OE.ORDERS SET SALES_REP_ID = 1 WHERE SALES_REP_ID IS NULL; |
ORDER_ID カラムは ORDERS テーブルの現在のプライマリキーです。現在のプライマリキーを削除するには、次の文を実行します。
ALTER TABLE OE.ORDERS DROP PRIMARY KEY CASCADE; |
複合プライマリキーは SALES_REP_ID カラムと ORDER_ID カラムにより構成されます。複合プライマリキーを追加するには、次の文を実行します。
ALTER TABLE OE.ORDERS ADD CONSTRAINT salesrep_order_pk PRIMARY KEY (sales_rep_id, order_id); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |