Sybase SQL Remote DC38133-01-0902-01 User Manual

Page of 485
The primary key pool table
The pool of primary keys is held in a separate table. The following CREATE
TABLE statement creates a primary key pool table:
CREATE TABLE KeyPool (
table_name VARCHAR(40) NOT NULL,
value INTEGER NOT NULL,
location CHAR(12) NOT NULL,
PRIMARY KEY (table_name, value),
);
The columns of this table have the following meanings:
Column
Description
table_name
Holds the names of tables for which primary key pools
must be maintained. In our simple example, if new sales
representatives were to be added only at the consolidated
database, only the Customer table needs a primary key pool
and this column is redundant. It is included to show a general
solution.
value
Holds a list of primary key values. Each value is unique for
each table listed in table_name.
location
An identifier for the recipient. In some setups, this could be
the same as the rep_key value of the SalesRep table. In other
setups, there will be users other than sales representatives and
the two identifiers should be distinct.
For performance reasons, you may wish to create an index on the table:
CREATE INDEX KeyPoolLocation
ON KeyPool (table_name, location, value);
Replicating the primary key pool
You can either incorporate the key pool into an existing publication, or share
it as a separate publication. In this example, we create a separate publication
for the primary key pool.
To replicate the primary key pool (SQL)
1. Create a publication for the primary key pool data.
CREATE PUBLICATION KeyPoolData (
TABLE KeyPool SUBSCRIBE BY location
);
134