此语句用于创建发布。在 MobiLink 中,发布标识 UltraLite 或 Adaptive Server Anywhere 远程数据库中的同步数据。
在 SQL Remote 中,发布标识统一数据库和远程数据库中的复制数据。
CREATE PUBLICATION [ owner.]publication-name
( TABLE article-description, ... )
owner, publication-name : identifier
article-description :
table-name [ ( column-name, ... ) ]
[ WHERE search-condition ]
[ SUBSCRIBE BY expression ]
项目说明 发布是由项目构建的。每个项目都是一个表或表的一部分。项目可以是表的垂直分区(表列的子集)、水平分区(表行的子集)或垂直与水平分区。
WHERE 子句 WHERE 子句定义项目中包括的表行子集的一种方法。如果同一子集将由发布的所有预订者接收,则 WHERE 子句很有用。
SUBSCRIBE BY 子句 在 SQL Remote 中,定义项目中包括的表行子集的一种方法是使用 SUBSCRIBE BY 子句。该子句允许许多不同的预订者在单个发布定义中接收表的不同行。MobiLink 同步期间忽略该子句。
在项目定义中,可以组合使用 WHERE 子句与 SUBSCRIB BY 子句,但 SUBSCRIBE BY 子句仅用于 SQL Remote。
此语句仅适用于 MobiLink 和 SQL Remote。
CREATE PUBLICATION 语句在数据库中创建发布。通过指定所有者名称,可以为其他用户创建发布。
在 MobiLink 中,发布在 Adaptive Server Anywhere 远程数据库中是必不可少,但在 UltraLite 数据库中却是可选的。这些发布以及对它们的预订决定了哪些数据将上载到 MobiLink 同步服务器。可以通过直接创建发布和预订来构造远程数据库。或者,也可以在充当远程数据库模板的 Adaptive Server Anywhere 参考数据库中创建发布和预订,然后使用 MobiLink 抽取实用程序构造远程数据库。
应使用 ALTER SYNCHRONIZATION SUBSCRIPTION 语句或 CREATE SYNCHRONIZATION SUBSCRIPTION 语句中的 ADD OPTION 子句为 MobiLink 发布设置选项。
在 SQL Remote 中,发布是一个双向操作,因为在统一数据库和远程数据库中都可以输入数据。在 SQL Remote 安装中,任何统一数据库和所有远程数据库必须定义相同的发布。从统一数据库中运行 SQL Remote 抽取实用程序时,远程数据库中会自动执行正确的 CREATE PUBLICATION 语句。
必须具有 DBA 权限。要求可以对语句中涉及的所有表进行独占访问。
自动提交。
SQL/92 供应商扩展。
SQL/99 供应商扩展。
下面的语句发布两个表中的所有列和行。
CREATE PUBLICATION pub_contact ( TABLE contact, TABLE company )
下面的语句仅发布一个表中的一些列。
CREATE PUBLICATION pub_customer ( TABLE customer ( id, company_name, city ) )
下面的语句通过包括一个测试 customer 表的状态列的 WHERE 子句,仅发布活动客户行。
CREATE PUBLICATION pub_customer ( TABLE customer ( id, company_name, city, state ) WHERE status = 'active' )
下面的语句通过提供预订者值,仅发布一些行。此方法只能用于 SQL Remote。
CREATE PUBLICATION pub_customer ( TABLE customer ( id, company_name, city, state ) SUBSCRIBE BY state )
创建 SQL Remote 预订时,按如下所示使用预订者值。
CREATE SUBSCRIPTION TO pub_customer ( 'NY' ) FOR jsmith
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。