返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

5.2. 缺省值

发布于 2019-09-30 03:05:48 字数 848 浏览 1023 评论 0 收藏 0

一个字段可以赋予缺省值。如果新创建了一个数据行,而有些字段的数值没有声明,那么这些字段将被填充为它们各自的缺省值。一条数据修改命令也可以明确地要求把一个字段设置为它的缺省值,而不用事先知道这个缺省值是什么。有关数据操作的命令在章6。

如果没有明确声明缺省值,那么缺省值是 NULL 。这么做通常是合理的,因为 NULL 表示"未知"。

在一个表定义里,缺省值是在字段数据类型后面列出的。比如:

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric DEFAULT 9.99
);

缺省值可以是一个表达式,它会在插入缺省值的时候计算(不是在创建表的时候)。一个常见的例子是一个 timestamp 字段可能有缺省值 now() ,它表示插入行的时刻。另外一个常见的例子是为每一行生成一个"序列号"。在 PostgreSQL 里,通常是用类似下面这样的方法生成的:

CREATE TABLE products (
    product_no integer DEFAULT nextval('products_product_no_seq'),
    ...
);

这里的 nextval() 从一个序列对象(参阅节9.12)提供后继的数值。这种做法非常普遍,以至于我们有一个专门的缩写用于此目的:

CREATE TABLE products (
    product_no SERIAL,
    ...
);

SERIAL 缩写在节8.1.4里有进一步描述。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文