使用 UNIQUE 或 DISTINCT 约束

使用 UNIQUE 或 DISTINCT 关键字以要求某列或一组列的集合只接收唯一数据值。如果列有唯一约束,则将不能把与其它行重复的值插入到该列中。当您创建了 UNIQUE 或 DISTINCT 约束时,数据库服务器将自动在被约束的列上创建内部索引。(在此上下文中,关键字 DISTINCT 是 UNIQUE 的同义词)。

不能在已经有主键约束的列上放置唯一约束。不能在 BYTE 或 TEXT 列上放置唯一约束。

如先前所述,不能在 GBase 8s 的 BLOB 或 CLOB 列上放置唯一约束或主键约束。

只有当辅助存取方法唯一支持不透明数据类型时,这种数据类型才支持唯一约束。缺省的辅助存取方法是一种 B-tree ,它支持 equal( ) 操作符函数。因此,如果不透明类型的定义包含 equal( ) 函数,则该不透明类型的列可以有唯一约束。

以下示例创建了一个简单表,该表在它的某一列上具有唯一约束:
CREATE TABLE accounts
        (acc_name  CHAR(12), 
        acc_num   SERIAL UNIQUE CONSTRAINT acc_num); 

有关约束名称的说明,请参阅声明约束名称