Redshift

如何增加 Redshift 數據庫表中的列大小?

  • January 28, 2020

在甲骨文中,我可以:

Alter table table_name
modify column_name datatype;

在紅移數據庫中這可能嗎?

AWS Redshift中,現在可以僅更改VARCHAR 列,但在以下條件下:

  • 您不能使用壓縮編碼 BYTEDICT、RUNLENGTH、TEXT255 或 TEXT32K 更改列。
  • 您不能將大小減小到小於現有數據的最大大小。
  • 您不能使用預設值更改列。
  • 您不能使用 UNIQUE、PRIMARY KEY 或 FOREIGN KEY 更改列。
  • 您不能更改多語句塊(BEGIN…END)內的列。

請參閱文件

最近 AWS 增加了對增加 varchar 列大小的支持,

更改 VARCHAR 列 為了節省儲存空間,您可以在最初定義一個具有 VARCHAR 列的表,該列具有目前數據要求所需的最小大小。如果稍後您需要容納更長的字元串,您可以更改表格以增加列的大小。要保護現有數據,您不能減小列大小。

以下範例將 EVENTNAME 列的大小更改為 VARCHAR(300)。

alter table event alter column eventname type varchar(300);

以下命令失敗,因為它試圖減小 EVENTNAME 列的大小。

alter table event alter column eventname type varchar(100);

關聯

引用自:https://dba.stackexchange.com/questions/171500