Amazon redshift 将自动增量列添加到现有红移表中

Amazon redshift 将自动增量列添加到现有红移表中,amazon-redshift,Amazon Redshift,我有一张红移的桌子 我想添加一个应该具有增量值的列。我不想放下桌子,再创建一个新的 请建议使用命令在红移表中添加具有自动增量值的列 谢谢 无法将标识列添加到现有表中 使用新的标识列创建新表并将数据复制到其中可能是最简单的。请注意,这些值不能保证单调增加,即可能存在间隙 发件人: 不能使用ALTER TABLE ADD COLUMN命令修改以下内容 表和列属性: 独特的 主键 引用(外键) 身份 无法向现有表中添加标识列 使用新的标识列创建新表并将数据复制到其中可能是最简单的。请注意,这些值不能保

我有一张红移的桌子

我想添加一个应该具有增量值的列。我不想放下桌子,再创建一个新的

请建议使用命令在红移表中添加具有自动增量值的列


谢谢

无法将标识列添加到现有表中

使用新的标识列创建新表并将数据复制到其中可能是最简单的。请注意,这些值不能保证单调增加,即可能存在间隙

发件人:

不能使用ALTER TABLE ADD COLUMN命令修改以下内容 表和列属性:

独特的

主键

引用(外键)

身份


无法向现有表中添加标识列

使用新的标识列创建新表并将数据复制到其中可能是最简单的。请注意,这些值不能保证单调增加,即可能存在间隙

发件人:

不能使用ALTER TABLE ADD COLUMN命令修改以下内容 表和列属性:

独特的

主键

引用(外键)

身份


无法向现有表中添加标识列

使用新的标识列创建新表并将数据复制到其中可能是最简单的。请注意,这些值不能保证单调增加,即可能存在间隙

发件人:

不能使用ALTER TABLE ADD COLUMN命令修改以下内容 表和列属性:

独特的

主键

引用(外键)

身份


无法向现有表中添加标识列

使用新的标识列创建新表并将数据复制到其中可能是最简单的。请注意,这些值不能保证单调增加,即可能存在间隙

发件人:

不能使用ALTER TABLE ADD COLUMN命令修改以下内容 表和列属性:

独特的

主键

引用(外键)

身份


使用createtable添加一个带有identity列的新表,然后与FILLTARGET修饰符一起使用,然后删除原始表并重命名新表。这非常快速和简单

如果目标表包含源中不存在的列 表,包括FILLTARGET。该命令将填充列表中的额外列 具有默认列值或标识值的源表, 如果定义了一个,则为空

它将列从一个表移动到另一个表,速度非常快,在dc1.large节点中,1GB表需要花费我4s的时间

通过从现有源移动数据将行追加到目标表 表。

ALTER TABLE APPEND通常比类似的CREATE TABLE快得多 因为数据是移动的,而不是重复的,所以将其作为或插入到操作中


使用createtable添加一个带有identity列的新表,然后与FILLTARGET修饰符一起使用,然后删除原始表并重命名新表。这非常快速和简单

如果目标表包含源中不存在的列 表,包括FILLTARGET。该命令将填充列表中的额外列 具有默认列值或标识值的源表, 如果定义了一个,则为空

它将列从一个表移动到另一个表,速度非常快,在dc1.large节点中,1GB表需要花费我4s的时间

通过从现有源移动数据将行追加到目标表 表。

ALTER TABLE APPEND通常比类似的CREATE TABLE快得多 因为数据是移动的,而不是重复的,所以将其作为或插入到操作中


使用createtable添加一个带有identity列的新表,然后与FILLTARGET修饰符一起使用,然后删除原始表并重命名新表。这非常快速和简单

如果目标表包含源中不存在的列 表,包括FILLTARGET。该命令将填充列表中的额外列 具有默认列值或标识值的源表, 如果定义了一个,则为空

它将列从一个表移动到另一个表,速度非常快,在dc1.large节点中,1GB表需要花费我4s的时间

通过从现有源移动数据将行追加到目标表 表。

ALTER TABLE APPEND通常比类似的CREATE TABLE快得多 因为数据是移动的,而不是重复的,所以将其作为或插入到操作中


使用createtable添加一个带有identity列的新表,然后与FILLTARGET修饰符一起使用,然后删除原始表并重命名新表。这非常快速和简单

如果目标表包含源中不存在的列 表,包括FILLTARGET。该命令将填充列表中的额外列 具有默认列值或标识值的源表, 如果定义了一个,则为空

它将列从一个表移动到另一个表,速度非常快,在dc1.large节点中,1GB表需要花费我4s的时间

通过从现有源移动数据将行追加到目标表 表。

ALTER TABLE APPEND通常比类似的CREATE TABLE快得多 因为数据是移动的,而不是重复的,所以将其作为或插入到操作中

见效!见效!见效!见效!
/* This is your table to be modified */
CREATE TABLE t_original (a varchar);
INSERT INTO t_original VALUES ('v1'), ('v2');

/* Here are the steps to add IDENTITY column */
CREATE TABLE t_new (id  BIGINT IDENTITY(0,1), a varchar);
ALTER TABLE t_new APPEND FROM t_original FILLTARGET;
DROP TABLE t_original;
ALTER TABLE t_new RENAME TO t_original;

/* Show the result */
SELECT * FROM t_original;
 id | a
----+----
  1 | v2
  0 | v1
(2 rows)