PostgreSQL教程-数据定义-增加列
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询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将会失败。也可以先将新列正确地填充好,然后再增加约束(见后文)。