sysdefaults 系统目录表列出了对数据库中的每一列设置的用户定义的缺省值。对于每个用户定义的缺省值,都存在一行。
列 | 类型 | 解释 | |
---|---|---|---|
tabid | INTEGER | 唯一地标识表的代码。当 class 列包含代码 P 时,tabid 列会引用过程标识,而不是表标识。 | |
colno | SMALLINT | 唯一地标识列的代码。 | |
type | CHAR(1) | 标识缺省值类型的代码:
|
|
default | CHAR(256) | 如果 sysdefaults.type = L,那么为文字缺省值。 | |
class | CHAR(1) | 标识列种类的代码:
|
如果 CREATE TABLE 或 ALTER TABLE 语句中未明确指定缺省值,那么 sysdefaults 表中不存在该列的条目。
如果指定文字作为缺省值,那么它将以 ASCII 文本的形式存储在缺省列中。如果文字值不是下一段中列出的数据类型之一,那么 default 列由两部分组成。第一部分是缺省值结构的二进制值的 6 位表示法。第二部分是 ASCII 文本形式的缺省值。这两个部分由空格隔开。
如果列的数据类型不是 CHAR、NCHAR、NVARCHAR 或 VARCHAR 或者(用于 GBase 8s)BOOLEAN 或 LVARCHAR,那么在缺省列中对缺省值的二进制表示进行编码。
tabid、colno 和 class 列的组合索引只允许唯一值。