暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a V95 自增列使用示例

努力的贾维斯 2022-06-13
2657

功能描述

自增列是指定 auto_increment 属性的列,自增列的列值单调递增(不保证连续)。

自增列支持在以下数据类型的列上使用:tinyint、smallint、int、bigint。自增列可以唯一识别表中每一条记录,可方便用于查询、修改、删除等操作。

使用说明

1. 每张表只能有一个自增列,且自增列支持的数据类型只能是tinyint、smallint、int、bigint;

2. 集群的自增列由系统自动维护,用户不可指定自增起始值和自增步长,集群的自增值单调递增,不保证连续;

3. DML 操作自增列,即:

  • insert 不能显式插入数据(因为大数据量情况下逐条检查插入数据和已有数据是否唯一递增会严重影响性能);
  • 可以给自增列 insert 指定特定值 NULL、0、default,指定这三个值不影响自增列,自增列仍然保持系统自动递增维护的值;
  • update 不能更新自增列;
  • merge 不能 update/insert 自增列。

4. 如要允许DML操作自增列,需要设置_gbase_auto_increment_allow_insert=1,此时需要用户自己保证自增列值是否正确;

5. V9.5版本的自增列为全局的、单调递增不保证连续性,V8.6版本虽然自增列语法能够执行但不支持全局自增列。V8.6版本的自增列只在单个data节点上有效。

语法说明

create [temporary] table [if not exists] 
[vc_name.][database_name.]table_name (create_definition,...)
create_definition:
 col_name column_definition
column_definition:
 data_type [not null] [default default_value]
 [auto_increment] [primary key]

语法参数说明

参数名称说 明
vc_namevc 名,可选项。
database_name数据库名,可选项。
table_name表名。
data_typedata_type 为 tinyint、smallint、int、bigint。

创建自增列示例

gbase> CREATE TABLE t1(name varchar(10),id int not null primary key auto_increment); 
Query OK, 0 rows affected (Elapsed: 00:00:00.08)
gbase> SHOW CREATE TABLE t1 \G 
*************************** 1. row ***************************
 Table: t1
Create Table: CREATE TABLE "t1" (
 "name" varchar(10) DEFAULT NULL,
 "id" int(11) NOT NULL AUTO_INCREMENT,
 PRIMARY KEY ("id")
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论