174
阿裏雲
ALTER TABLE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
該語句用於修改已存在的表的結構,比如:修改表及表屬性、新增列、修改列及屬性、刪除列等。
格式
ALTER TABLE tblnamealter_specification [, alter_specification]... ;alter_specification:ADD [COLUMN] colname column_definition| ADD [COLUMN] (colname column_definition,...)| ADD [UNIQUE]{INDEX|KEY} [indexname] (index_col_name,...) [index_options]| ADD PRIMARY KEY (index_col_name,...) [index_options](暫不支持)| ALTER [COLUMN] colname {SET DEFAULT literal | DROP DEFAULT}| CHANGE [COLUMN] oldcolname newcolname column_definition| MODIFY [COLUMN] colname column_definition| DROP [COLUMN] colname| DROP PRIMARY KEY (暫不支持)| DROP {INDEX | KEY} indexname| RENAME [TO] newtblname| ORDER BY colname (暫不支持)| CONVERT TO CHARACTER SET charsetname [COLLATE collationname] (暫不支持)| [DEFAULT] CHARACTER SET charsetname [COLLATE collationname] (暫不支持)| table_options| partition_options| DROP TABLEGROUP| AUTO_INCREMENT [=] numcolumn_definition:data_type [NOT NULL | NULL] [DEFAULT defaultvalue][AUTO_INCREMENT] [UNIQUE [KEY]](暫不支持) [[PRIMARY] KEY] (暫不支持)[COMMENT 'string']table_options:[SET] table_option [[,] table_option]...table_option:[DEFAULT] {CHARACTER SET | CHARSET} [=] charsetname| [DEFAULT] COLLATE [=] collationname| COMMENT [=] 'string'| COMPRESSION [=] '{NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 |ZLIB_1.0}'| EXPIRE_INFO [=] (expr)| REPLICA_NUM [=] num| TABLE_ID [=] id| BLOCK_SIZE [=] size| USE_BLOOM_FILTER [=] {True | False}| PROGRESSIVE_MERGE_NUM [=] num| TABLEGROUP [=] tablegroupname| PRIMARY_ZONE [=] zone| AUTO_INCREMENT [=] numpartition_options:PARTITION BYHASH(expr)| KEY(column_list)[PARTITIONS num][partition_definition ...]partition_definition:COMMENT [=] 'commenttext' (暫不支持)
增加列
ALTER TABLE tblnameADD [COLUMN] colname data_type[NOT NULL | NULL][DEFAULT defaultvalue];
- data_type請參見數據類型章節
修改列屬性
ALTER TABLE tblnameALTER [COLUMN] colname[SET DEFAULT literal| DROP DEFAULT];
修改列類型
ALTER TABLE tblnameMODIFY colname column_definition;
刪除列
ALTER TABLE tblnameDROP [COLUMN] colname;
- 不允許刪除主鍵列或者包含索引的列。
表重命名
ALTER TABLE tblnameRENAME TO newtblname;
列重命名
ALTER TABLE tblnameCHANGE [COLUMN] oldcolname newcolname column_definition;
注意:
- 對於varchar類型的列,隻允許將varchar的長度變大,不允許減小。
- 在 OceanBase 0.5 裏列重命名是用 ALTER TABLE tblname RENAME [COLUMN] oldcolname TO newcolname,OceanBase 1.0的實現與MySQL兼容。
例1:
#把表t2的字段d改名為c,並同時修改了字段類型ALTER TABLE t2 CHANGE COLUMN d c CHAR(10);
設置過期數據刪除
ALTER TABLE tblnameSET EXPIRE_INFO [ = ] expr;
例2:
CREATE TABLE example_1(custid INT, thedate TIMESTAMP, cost INT, PRIMARY KEY(custid, thedate)) EXPIRE_INFO = (thedate < date_sub(merging_frozen_time(), INTERVAL 2 DAY)),USE_BLOOM_FILTER = FALSE;
(thedate < date_sub(merging_frozen_time(), INTERVAL 2 DAY)),表示刪除(過期)thedate字段值為凍結時間2天前的數據,刪除數據動作在數據合並時候真正執行。
修改過期條件
# 刪除(過期)thedate字段值為1天前的數據。alter table example_1 set EXPIRE_INFO = (thedate < date_sub(merging_frozen_time(), INTERVAL 1 DAY))
設置Partition表BLOCK大小
ALTER TABLE tblnameSET BLOCK_SIZE [=] blocksize;
設置該表的副本數
ALTER TABLE tblnameSET REPLICA_NUM [=] num;
這裏是指表的副本總數多少。
設置該表的壓縮方式
ALTER TABLE tblnameSET COMPRESSION [=] '{NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 | ZLIB_1.0}';
設置是否使用BloomFilter
ALTER TABLE tblnameSET USE_BLOOM_FILTER [=] {True | Flase};
設置注釋信息
ALTER TABLE tblnameSET COMMENT [=] 'commentstring';
設置漸進合並步數
ALTER TABLE tblnameSET PROGRESSIVE_MERGE_NUM [=] num;
此功能是設置漸近合並步數,PROGRESSIVE_MERGE_NUM現在在限製是1~64。
設置表的ZONE屬性
ALTER TABLE tblnamezone_specification...;zone_specification:PRIMARY_ZONE [=] zone
修改AUTO_INCREMENT字段的起始值
可在create talbe時指定AUTO_INCREMENT的起始值,也可用alter table tbl_name AUTO_INCREMENT=n命令來重設自增的起始值,但是如果設置的n比AUTO_INCREMENT字段的當前值小的話,執行的sql不會報錯,但是不會生效!
Oceanbase>create table t1(id int auto_increment primary key,name varchar(10)) auto_increment=100;Query OK, 0 rows affected (0.10 sec)Oceanbase>alter table t1 auto_increment=50;Query OK, 0 rows affected (0.04 sec)#用alter table語句把t1表的auto_increment起始值調整為50,由於50小於100,修改無效Oceanbase>show create table t1;+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| t1 | CREATE TABLE `t1` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`)) AUTO_INCREMENT = 100 DEFAULT CHARSET = utf8mb4 REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE |+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+Oceanbase>alter table t1 auto_increment=110;Query OK, 0 rows affected (0.03 sec)Oceanbase>show create table t1;+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| t1 | CREATE TABLE `t1` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`)) AUTO_INCREMENT = 110 DEFAULT CHARSET = utf8mb4 REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE |+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.01 sec)
最後更新:2016-11-24 11:23:47
上一篇:
CREATE TABLE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
下一篇:
DROP TABLE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
Dubbo 標簽兼容能力__EDAS 中的 Dubbo 開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
管理執行計劃__執行計劃_用戶指南_E-MapReduce-阿裏雲
創建 Job__SchedulerX for EDAS_二方服務_企業級分布式應用服務 EDAS-阿裏雲
刪除水印模板__水印模板接口_API使用手冊_媒體轉碼-阿裏雲
Dubbo 開發注意事項__EDAS 中的 Dubbo 開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
DomainGroupType__數據類型_API文檔_雲解析-阿裏雲
RDS數據源配置__數據源配置_數據同步手冊_用戶操作指南_大數據開發套件-阿裏雲
API說明__產品簡介_推薦引擎-阿裏雲
OSS轉儲快速使用__快速入門_歸檔存儲-阿裏雲
GetRow__API 概覽_API 參考_表格存儲-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲