0
A
回答
1
無法將IDENTITY列添加到現有表中。
用新的IDENTITY列創建一個新表可能是最容易的,並將數據複製到其中。請注意,這些值不保證單調遞增 - 即可能存在間隙。
從http://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html:
不能使用ALTER TABLE ADD COLUMN命令來修改以下 表和列屬性:
UNIQUE
PRIMARY KEY
參考(國外鍵)
IDENTITY
1
使用CREATE TABLE添加新的表標識列,然後使用ALTER TABLE APPEND與FILLTARGET修改,然後刪除原始表和重命名新表是非常快速和簡單。
如果目標表包含源 表中不存在的列,請包括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)
相關問題
- 1. SQL Server將自動增加主鍵添加到現有表
- 2. 將自動遞增ID添加到現有的升序列?
- 3. 如何將自動遞增列添加到現有的Vertica表中?
- 4. 如何將具有自動增量名稱的列添加到MySql表中?
- 5. AWS紅移 - 添加IDENTITY列到現有的表
- 6. 如何將自動增量添加到mongodb/node.js中的現有集合中?
- 7. 將列添加到包含表名+增量的現有MySQL表中
- 8. 增加現有SQL中的自動增量表
- 9. pandas.to_sql將新列添加到現有表中,自動添加新列?
- 10. 的自增ID列到現有的表添加使用SQLite
- 11. 如何在PostgreSQL中將自動遞增主鍵添加到現有表中?
- 12. 在codeigniter中的表中添加自動增量列
- 13. 將列添加到現有表中
- 14. 自動增量DataGrid列,無需將其添加到DataContext
- 15. Mysql添加自動增量列
- 16. 添加自動增量_id列
- 17. C#將數據表添加到SQL與主鍵自動增量
- 18. 現有表中添加自動遞增的主鍵 - SQL
- 19. 將data.frame添加到包含向量的現有列表中
- 20. 在不重建表格的情況下將自動增量添加到列
- 21. 合流 - 如何將自動遞增列添加到表
- 22. 如何將代理自動增加鍵添加到表中?
- 23. 在oracle 10g中添加自動增量和自動遞減列
- 24. 將自動增量列修改爲全局自動增量列
- 25. F#將值添加到現有列表
- 26. UCanAccess:將列添加到現有表
- 27. 將現有網站列添加到自定義列表
- 28. 自動增量列不會增加mysql表中的數字
- 29. 如何使用phpmyadmin將自動增量添加到mysql數據庫中的列?
- 30. mysql添加一個帶有起始值的自動增量列
參見[我的回答如下(http://stackoverflow.com/a/40212352/1265306)ALTER TABLE APPEND(http://docs.aws.amazon.com/redshift/latest /dg/r_ALTER_TABLE_APPEND.html)的作品! – naviram 2016-10-24 06:58:02