在同步系统中,表的主键是在不同数据库中唯一地标识行的唯一方式,也是检测冲突的唯一方式。正在协调的每一个表都必须具有一个主键。切勿对主键进行更新。还需要确保已插入到一个数据库中的主键值不被插入到另一数据库。
前提条件
本课假定您已完成前面的所有课程。 请参见第 1 课:设计模式。
本课假定您拥有在教程教程:将 MobiLink 用于 Oracle 10g 数据库开头的“权限和特权”部分中列出的角色和特权。
上下文和注释
可通过多种方法来生成唯一主键。为简便起见,本教程使用了复合主键方法。此方法创建多个列的主键,这些主键在统一数据库和远程数据库中都是唯一的。
在命令提示符处,运行以下命令:
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 列不能添加为主键,因为它包含空值。对于本教程,用值 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讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |