GBase数据库使用单列约束格式的限制
单列约束格式无法指定包含多列的约束。因此,不能使用单列约束格式来定义组合关键字。有关多 列约束的信息,请参阅多列约束格式。
不能在 RAW 表的任一列上定义引用约束或唯一约束。RAW 表只支持 NOT NULL 或 NULL 约 束。
不能在 BLOB 、BYTE 、CLOB 或 TEXTY 列上放置唯一、主键、或引用约束。但是可以使用检 查约束来检查 BYTE 或 TEXT 列上的 NULL 或 non-NULL 值。
如果约束在存储加密数据的列上,则 GBase 8s 不执行此约束。
使用 NOT NULL 约束
使用 NOT NULL 关键字来要求列必须在插入或更新操作期间接收值。如果在列删放置了 NOT NULL 约束(并且没有指定缺省值),则当您插入一行或者某行中更新列是,必须在该列中输入一 个值。如果没有输入值,则由于不存在缺省值,所以数据库服务器将返回一个错误。
以下示例创建了 newitems 表。在 newitems 中,列 manucode 没有缺省值也不允许有 NULL 值。
CREATE TABLE newitems (
newitem_num INTEGER,
manucode CHAR(3) NOT NULL,
promotype INTEGER,
descrip CHAR(20));
当您定义 PRIMARY KEY 约束时,数据库服务器还静默地在同一列或在构成主键的列集上创建了 NOT NULL 约束。
如果还指定了 NOT NULL 约束,则不能指定 NULL 作为列的显式缺省值。 如果在同一列上指定 NOT NULL 约束和 NULL 约束,则 CREATE TABLE 语句发生错误并失 败。
集合数据类型 LIST 、MULTISET 和 SET 的列要求 NOT NULL 约束。在结合数据类型上不允许 其它的列约束。