开发者社区> 问答> 正文

如何创建表

表是关系型数据库和表格存储中的基本数据结构。关系型数据库创建表时需要定义完整的数据结构。相比之下,表格存储的数据表只需要定义主键信息。

SQL


使用CREATE TABLE语句创建表,如下所示: CREATE TABLE UserHistory (
    user_id VARCHAR(20) NOT NULL,
    time_stamp INT NOT NULL,
    item_id VARCHAR(50),
    behavior_type VARCHAR(10),
    behavior_amount DOUBLE,
    behavior_count INT,
    content VARCHAR(100),
    PRIMARY KEY(user_id, time_stamp)
);


此表的主键包含 user_id 和 time_stamp。在创建数据表时,必须严格定义所有主键列和属性列,如有需要,可使用ALTER TABLE语句更改这些定义。

表格存储


使用表格存储创建数据表并指定如下参数,如下所示: public static final String TABLE_NAME = "UserHistory";
    TableMeta tableMeta = new TableMeta(TABLE_NAME);
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("user_id", PrimaryKeyType.STRING));
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("time_stamp", PrimaryKeyType.INTEGER));
    // 数据的过期时间, 单位秒, -1代表永不过期. 假如设置过期时间为一年, 即为 365 * 24 * 3600
    int timeToLive = -1;
    // 保存的最大版本数, 设置为3即代表每列上最多保存3个最新的版本
    int maxVersions = 3;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    // 设置读写预留值,若不设置则读写预留值均默认为0
    request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(1, 1)));
    client.createTable(request);


此表的主键包含 user_id 和 time_stamp,需要提供的参数主要有:

参数说明
TABLE_NAME表的名称。
PrimaryKeySchema主键的名称及类型。
timeToLive数据表的数据过期时间。
maxVersion数据表属性列的最大版本数。
ReservedThroughtput数据表的预留读写吞吐量。[backcolor=transparent]注意:容量型实例不支持预留吞吐量的设置。

展开
收起
云栖大讲堂 2017-10-24 17:19:35 2252 0
1 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载