暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

李雨晴 2022-03-23
1274

    在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将会失败。也可以先将新列正确地填充好,然后再增加约束。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论