DEFAULT 子句

使用 DEFAULT 子句指定当列的显式值没有指定时,数据库服务器应当在该列中插入的值。
DEFAULT 子句
元素 描述 限制 语法
label 安全标签的名称 必须存在且必须属于保护此表的安全策略。该列必须是 IDSSECURITYLABEL 类型。 标识符
literal 列的文字缺省值 必须适合列的数据类型。请参阅将文字值作为缺省值 标识符

如果当您添加包含缺省值的列时,您正在更改的表已经有行,则此缺省值只应用在 ALTER TABLE MODIFY 语句之后插入的新列的行中。任何新列插入之前已存在的行,会在新列中拥有一个 NULL 值,除非您更改这些行以插入非 NULL 值。现在您插入的行将拥有 MODIFY 子句指定的缺省值,除非您向新列中插入了其它值。

你不能指定顺序列的缺省值。 对于 DISTINCT 或 OPAQUE 数据类型的列,您不能指定作为缺省值像变量函数的常数表达式(例如:CURRENT 、SYSDATE DBSERVERNAME 、SITENAME 、TODAY 、USER 或 CURRENT_USER)。

以下示例将数据类型为 DECIMAL(6,2) 的列添加到 items 表。在 items 中,新的列 item_weight 有文字缺省值:
ALTER TABLE items 
          ADD item_weight DECIMAL (6, 2) DEFAULT 2.00 
          BEFORE total_price;

在此示例中,items 表中的每个现有行的 item_weight 列都有缺省值 2.00

有关 DEFAULT 子句的选项的更多信息,请参阅 CREATE TABLE 语句中 DEFAULT 子句 章节。

1 GBase 8s 扩展
2 请参阅 DATETIME 字段限定符