309
財經資訊
CREATE TABLE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
該語句用於在OceanBase數據庫中創建新表。
格式
CREATE TABLE [IF NOT EXIST] tblname
(create_definition,...)
[table_options]
[partition_options];
CREATE TABLE [IF NOT EXISTS] tblname
LIKE oldtblname;
create_definition:
colname column_definition
| PRIMARY KEY (index_col_name[, index_col_name...]) [index_option]...
| {INDEX|KEY} [indexname] (index_col_name,...) [index_option]...
| UNIQUE {INDEX|KEY} [indexname] (index_col_name,...) [index_option]...
column_definition:
data_type [NOT NULL | NULL] [DEFAULT defaultvalue]
[AUTO_INCREMENT] [UNIQUE [KEY]] | [[PRIMARY] KEY]
[COMMENT 'string']
data_type:
TINYINT[(length)] [UNSIGNED] [ZEROFILL]
| SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
| MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
| INT[(length)] [UNSIGNED] [ZEROFILL]
| INTEGER[(length)] [UNSIGNED] [ZEROFILL]
| BIGINT[(length)] [UNSIGNED] [ZEROFILL]
| REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
| FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
| NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
| DATE
| TIME[(fsp)]
| TIMESTAMP[(fsp)]
| DATETIME[(fsp)]
| YEAR
| CHAR[(length)]
[CHARACTER SET charsetname] [COLLATE collationname]
| VARCHAR(length)
[CHARACTER SET charsetname] [COLLATE collationname]
| BINARY[(length)]
| VARBINARY(length)
index_col_name:
colname [(length)] [ASC | DESC](OceanBase1.0暫不支持前綴索引)
index_option:
GLOBAL [LOCAL]
|COMMENT 'string'
|COMPRESSION [=] '{NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 | ZLIB_1.0}'
|BLOCK_SIZE [=] size
|STORING(columname_list)
table_options:
table_option [[,] table_option]...
table_option:
[DEFAULT] { CHARACTER SET | CHARSET } [=] value
| [DEFAULT] COLLATE [=] collationname
| COMMENT [=] '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 [=] num
partition_options:
PARTITION BY
HASH(expr)
|KEY(column_list)
[PARTITIONS num]
[partition_definition ...]
partition_definition:
COMMENT [=] 'string' (暫不支持)
OceanBase內部數據以b樹為索引,按照Primary Key排序。OceanBase 0.4.2及以前版本不允許用戶創建隻有主鍵列的表;OceanBase 0.5.0及以上版本支持創建隻有主鍵列的表。OceanBase 1.0可以不指定主鍵,係統會自動生成。
CREATE TABLE支持UNIQUE約束;暫不支持創建臨時表,暫不支持CHECK約束;不支持創建表的同時從其他表導入功能。
- 使用“IF NOT EXISTS”時,即使創建的表已經存在,也不會報錯,如果不指定時,則會報錯。
- “data_type”請參見數據類型章節。
- NOT NULL,DEFAULT,AUTO_INCREMENT用於列的完整性約束。
- “table_option”內容參考下表,各子句間用“,”隔開。
- “index_option”中,可以指定GLOBAL,LOCAL關鍵字,表述全局或局部索引。默認是GLOBAL index。創建帶有Parition的表時index一定要加LOCAL關鍵字。如果沒有加,係統將報錯。
參數 含義 舉例 CHARACTER SET 指定該表所有字符串的編碼,用於對外提供元數據信息。目前僅支持UTF8MB4。 CHARACTER SET = 'utf8mb4' COMMENT 添加注釋信息。 COMMENT='create by Bruce' COMPRESSION 存儲數據時使用的壓縮方法名,目前提供的方法有以下幾種:
· none(默認值,表示不作壓縮)
· LZ4_1.0
· LZO_1.0
· SNAPPY_1.0
· ZLIB_1.0COMPRESSION = 'NONE' EXPIRE_INFO 在MemTable中的動態數據和SSTable中的靜態數據合並時,滿足表達式的行會自動刪除。
一般可用於自動刪除過期數據。expire_info c1 < date_add(merging_frozen_time(),interval -1 HOUR);
merging_frozen_time()表示當前最新的合並時間,此函數隻適用於過期條件。TABLE_ID 指定表的ID。如果指定的table_id小於50000,需要打開RootServer的配置項開關“enable_sys_table_ddl”,普通用戶不建議指定。 TABLE_ID =4000 BLOCK_SIZE 設置Partition的微塊大小。 默認為16K。 USE_BLOOM_FILTER 對本表讀取數據時,是否使用Bloom Filter。
· False:默認值,不使用。
· True:使用。USE_BLOOM_FILTER = False PROGRESSIVE_MERGE_NUM 設置漸近合並步數。
PROGRESSIVE_MERGE_NUM現在在限製是1~64。默認值為1。
PROGRESSIVE_MERGE_NUM = 5TABLEGROUP 表所屬表格組。 REPLICA_NUM 這個表的partition總副本數,默認值為3。 REPLICA_NUM = 3 ZONE_LIST 集群列表 PRIMARY_ZONE 主集群。 AUTO_INCREMENT 自增字段初始值 AUTO_INCREMENT = 5
AUTO_INCREMENT基本說明
在OceanBase中可以把表中的數據類型為整數型的某個字段定義為自增屬性AUTO_INCREMENT,數據庫會自動遞增方式生產唯一值。
允許給TINYINT、SMALLINT、MEDIUMINT、INT、INTEGER、BIGINT各種整數類型的字段指定AUTO_INCREMENT,其它數據類型的字段不能指定AUTO_INCREMENT。
一個表隻允許有一個屬性為AUTO_INCREMENT的字段。
Oceanbase>create table t1 (id int auto_increment,name varchar(20) primary key);
Query OK, 0 rows affected (0.01 sec)
舉例
例1:
執行以下命令,創建數據庫表。
ceanbase>CREATE TABLE test (c1 int primary key, c2 varchar(10)) REPLICA_NUM = 3, COMPRESSION = 'NONE';
Query OK, 0 rows affected (0.40 sec)
執行命令查看表信息,如:
Oceanbase>describe test;
+-------+-------------+------+------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+------+---------+-------+
| c1 | int(11) | NO | PRI | NULL | |
| c2 | varchar(10) | YES | | NULL | |
+-------+-------------+------+------+---------+-------+
2 rows in set (0.01 sec)
例2:
Oceanbase>CREATE TABLE example_2(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;
Query OK, 0 rows affected (0.11 sec)
(thedate < date_sub(merging_frozen_time(), INTERVAL 2 DAY))
,表示刪除(過期)thedate字段值為2天前的數據,刪除數據動作在數據合並時候真正執行。其中 merging_frozen_time()表示當前最新的合並時間。(merging_frozen_time()隻能放在過期條件中使用)
最後更新:2016-11-24 11:23:47
上一篇:
DROP DATABASE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
下一篇:
ALTER TABLE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
阿裏雲攜手德施曼聯合發布《中國智能鎖應用與發展白皮書》
DiskSetType__數據類型_API 參考_雲服務器 ECS-阿裏雲
GetRow__API 概覽_API 參考_表格存儲-阿裏雲
阿裏雲發布神龍雲服務器,甲骨文成“區塊鏈即服務”生態新成員
Media C SDK開發包__曆史版本SDK下載_SDK 參考_對象存儲 OSS-阿裏雲
Condition__DataType_API 參考_表格存儲-阿裏雲
批量刪除域名__批量管理接口_API文檔_雲解析-阿裏雲
短信服務(Short Message Service)服務條款__服務協議條款_短信服務-阿裏雲
阿裏雲等4家企業違反《網絡安全法》被責令整改
投遞日誌到OSS__logshipper_用戶指南_日誌服務-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲