【问题标题】:How to add SUPER column to existing AWS Redshift table?如何将 SUPER 列添加到现有 AWS Redshift 表?
【发布时间】:2022-01-06 12:30:43
【问题描述】:

目标

  • 我想将 Redshift SUPER column 添加到现有的 redshift 表中。
  • 我需要这个来在那里存储 JSON 数据

代码

这就是我通常添加新列的方式。

ALTER TABLE products 
ADD COLUMN created_at NOT NULL;

1.试过了

CREATE TABLE temp_test_persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

ALTER TABLE temp_test_persons ADD COLUMN newSuperColumn SUPER NOT NULL; 

运行查询时出错:定义为 NOT NULL 的 ALTER TABLE ADD COLUMN 必须具有非空默认表达式

经过审核的解决方案

【问题讨论】:

  • 您是否尝试简单地将数据类型添加到您的语句中? ALTER TABLE products ADD COLUMN newSuperColumn SUPER NOT NULL;
  • 我试过了,但它返回了一个错误(你可以在我编辑的帖子中看到它)。

标签: sql amazon-web-services amazon-redshift


【解决方案1】:

解决方案是为该列设置一个默认值。然后您可以将列定义为 NotNull。 像这样

ALTER TABLE temp_test_persons 
ADD COLUMN newSuperColumn SUPER NOT NULL 
DEFAULT '';

【讨论】:

    【解决方案2】:
    ALTER TABLE temp_test_persons 
    ADD COLUMN newSuperColumn SUPER;
    

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 2013-07-26
      • 2015-06-05
      • 1970-01-01
      • 2014-02-12
      • 2019-08-11
      • 2022-10-14
      • 2016-11-13
      相关资源
      最近更新 更多