400-090-9964


博客 | 论坛

教学文章

PostgreSQL教程-数据定义-增加列

时间:2021-10-12 来源:

5.6.1. 增加列

要增加一个列,可以使用这样的命令:

ALTER TABLE products ADD COLUMN description text;

新列将被默认值所填充(如果没有指定DEFAULT子句,则会填充空值)。

提示

从 PostgreSQL 11开始,添加一个具有常量默认值的列不再意味着在执行ALTER TABLE 语句时需要更新表的每一行。 相反,默认值将在下次访问该行时返回,并在表被重写时应用,从而使得ALTER TABLE即使在大表上也非常快。

但是,如果默认值是可变的(例如clock_timestamp()),则每一行需要被ALTER TABLE被执行时计算的值更新。 为避免潜在的长时间的更新操作,特别是如果你想要用大多数非默认值填充列,那么最好添加没有默认值的列,再用 UPDATE插入正确的值,然后按照下面所述添加任何期望的默认值。

也可以同时为列定义约束,语法:

ALTER TABLE products ADD COLUMN description text CHECK (description <> '');

事实上CREATE TABLE中关于一列的描述都可以应用在这里。记住不管怎样,默认值必须满足给定的约束,否则ADD将会失败。也可以先将新列正确地填充好,然后再增加约束(见后文)。

版权所有@北京优技教育技术有限公司(CUUG,中国UNIX用户协会) Copyright 2017 ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com bd.cuug.com

电话:010-59426307 010-59426319 邮政编码:100089

海淀校区:北京市海淀区紫竹院路88号紫竹花园4号楼D座703(CUUG)

关闭