可以将常量表达式作为缺省列值。
常量表达式 | 数据类型要求 | 建议大小 |
---|---|---|
CURRENT, SYSDATE | DATETIME 列及匹配的限定符 | 足够的字节存储语言环境中最长的 DATETIME 值 |
DBSERVERNAME, SITENAME | CHAR 、VARCHAR 、NCHAR 、NVARCHAR 或 CHARACTER VARYING 列 | 128 字节 |
TODAY | DATE 列 | 足够的字节存储语言环境中最长的 DATE 值 |
USER, CURRENT_USER | CHAR 、VARCHAR 、NCHAR 、NVARCHAR 或 CHARACTER VARYING 列 | 32 字节 |
这些是我们建议的列大小,因为如果在 INSERT 或 ALTER TABLE 操作期间由于列长度太小无法存储缺省值时,数据库服务器将返回一个错误。
您不能为保存 OPAQUE 或 DISTINCTY 数据类型的列指定行为类似可变函数的常量表达式(即 CURRENT 、 SYSDATE 、USER 、TODAY 、SITENAME 或 DBSERVERNAME)作为缺省值。另外,如果数据值是加密或使用 UTF-8 语言环境中 Unicode 字符集编码的话,则需要较大的列大小。(关于对加密数据所需的存储大小的更多信息,请参阅本章随后关于 SET ENCRYPTION 语句的描述。)
有关这些函数的描述,请参阅 常量表达式。
CREATE TABLE accounts ( acc_num INTEGER DEFAULT 1, acc_type CHAR(1) DEFAULT 'A', acc_descr CHAR(20) DEFAULT 'New Account', acc_id CHAR(32) DEFAULT CURRENT_USER);