GBase数据库使用 WITH ERKEY 关键字创建 ERKEY 影子列,它可以被 Enterprise Replication 用作复制键。
ERKEY 影子列(ifx_erkey_1 、ifx_erkey_2 和 ifx_erkey_3)是可见的影子列,因为它们可以被索 引且能在系统目录表中查看。在创建 ERKEY 影子列之后,会在使用这些列的表上创建新的唯一索 引和唯一约束。Enterprise Replication 使用此索引作为复制键。
对于大多数数据库操作,ERKEY 列是隐藏的。例如,如果您在创建表时包含了 WITH ERKEY 关键 字,则 ERKEY 列具有以下行为:
⚫ 当查询时指定星号(*)作为投影列表时(如下列语句所示),它们不会返回: SELECT * FROM tablename;
⚫ 当您询问有关表中列的信息时,它们并不出现在 DB-Access 中。
⚫ 它们并不包含在 tablename 的 systables 系统目录表条目的列数目(ncols)中。
要查看 ERKEY 列的内容,请在 SELECT 语句的投影列表中显式指定这些列,如以下示例所示: SELECT ifx_erkey_1, ifx_erkey_2, ifx_erkey_3 FROM customer;
示例:在以下示例中,ERKEY 影子列添加到 customer 表中:
CREATE TABLE customer (id INT) WITH ERKEY;
使用 WITH REPLCHECK 关键字
使用 WITH REPLCHECK 关键字创建 ifx_replcheck 影子列,Enterprise Replication 将该列用于一 致性检查。 ifx_replcheck 列是可见的影子列,因为它们可以被索引且能在系统目录表中查看。创建 ifx_replcheck 影子列之后,必须在主键和 ifx_replcheck 列上创建唯一索引。ifx_replcheck 影子列 必须是该索引中的最后一列。Enterprise Replication 使用此索引加速一致性检查。