我在 Redshift 中有一张桌子。
我想添加一个应该具有增量值的列。我不想删除该表并创建一个新表。
请建议在 redshift 表中添加具有自动增量值的列的命令。
谢谢 !!!
使用 CREATE TABLE 添加带有标识列的新表,然后使用带有 FILLTARGET 修饰符的ALTER TABLE APPEND,然后删除原始表并重命名新表,这是非常快速和简单的。
如果目标表包含源表中不存在的列,请包括 FILLTARGET。该命令使用默认列值或 IDENTITY 值(如果已定义)或 NULL 填充源表中的额外列。
它将列从一个表移动到另一个表,速度非常快,在 dc1.large 节点中花了 4 秒才处理 1GB 表。
通过从现有源表移动数据将行追加到目标表。
...
ALTER TABLE APPEND 通常比类似的 CREATE TABLE AS 或 INSERT INTO 操作快得多,因为数据是移动的,而不是复制的。
/* 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8881 次 |
| 最近记录: |