GBase 8c
其他
文章

GBase 8c 数据定义-增加列 表操作

发表于2023-12-11 09:45:3925次浏览0个评论

在GBase 8c 数据库中,如需增加列,可以使用这样的命令:
 

 

ALTER TABLE products ADD COLUMN description text;

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

 

注意:

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

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

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

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

    事实上CREATE TABLE中关于列的描述都可以应用在这里。无论如何,默认值必须满足给定的约束,否则ADD将会失败。也可以先将新列正确地填充好,然后再增加约束。

评论

登录后才可以发表评论