在上一篇文章中,介绍了CockroachDB中创建表的更多一些示例,包括:“主键”、“外键”、“Check约束”这些SQL标准中的特性用法;还结合示例介绍了如何创建带有计算列和能够映射KV存储表的方法。本文将介绍CockroachDB中创建表时的另外一些示例,包括:创建带有二级索引和倒排索引的表、创建带有ID值自动生成的表(3种方式)、从Select语句创建表以及创建具有多列族的表(这是CRDB自己的扩展)。
1. 创建带有二级索引和倒排索引的表
在CRDB中,能够在创建表的同时创建二级索引或倒排索引。二级索引就是传统数据库中的非主键索引;在CRDB中倒排索引用于为类型是JSON的字段创建索引,以提高在JSON类型字段上检索的性能。
我们看一个例子,这个例子还综合了先前介绍的检查约束和缺省值等特性:
CREATE TABLE product_information(
product_id INT PRIMARY KEY,
product_name STRING(50) UNIQUE NOT NULL,
product_description STRING(2000),
category_id STRING(1) NOT NULL CHECK (category_id IN ('A','B','C')),
weight_class INT,
warr