返回首页

gbase数据、南大通用产品文档:GBase8a使用游标操作数据库

更新日期:2024年09月11日

使用游标操作数据库资源,包括:执行SQL 语句、调用存储过程、执行事
务、获取结果集操作。

GBase Python 接口开发手册


- 6 -

南大通用数据技术股份有限公司

GBase 8s 产品符合各种标准。
基于 SQL 的 GBase 8s 产品完全兼容 SQL-92 入门级
(发布为 ANSI X3.135-1992)

这与 ISO 9075:1992 完全相同。
另外,
GBase 8s 数据库服务器的许多功能都遵守 SQL-92
中级和完全级别以及 X/Open SQL 公共应用程序环境 (CAE) 标准。

语法格式
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]
表5- 85 参数说明
参数名称


vc_name
vc 名,可选项。
database_name
数据库名,可选项。
table_name
表名。
data_type
data_type 为tinyint、smallint、int、bigint。
说明

自增列的属性必须为not null;

创建自增列时必须带primary key 关键字(8a 不支持primary key 功
能,此处primary key 仅作为语法兼容);

每个表最多只能有一个自增列。

自增列不能是hash 分布列
示例
示例1:随机分布表上创建自增列

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1008
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)
示例2:复制表上创建自增列
gbase> CREATE TABLE t2(a int not null primary key auto_increment, b
varchar(100)) replicated;
Query OK, 0 rows affected (Elapsed: 00:00:00.08)
gbase> SHOW CREATE TABLE t2 \G
*************************** 1. row ***************************
Table: t2
Create Table: CREATE TABLE "t2" (
"a" int(11) NOT NULL AUTO_INCREMENT,
"b" varchar(100) DEFAULT NULL,
PRIMARY KEY ("a")
)
ENGINE=EXPRESS
REPLICATED
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1009
1 row in set (Elapsed: 00:00:00.00)
示例3:哈希分布表上创建自增列
gbase> CREATE TABLE t3(name varchar(10),id int not null primary key
auto_increment) distributed by ('name');
Query OK, 0 rows affected (Elapsed: 00:00:00.08)
gbase> SHOW CREATE TABLE t3 \G
*************************** 1. row ***************************
Table: t3
Create Table: CREATE TABLE "t3" (
"name" varchar(10) DEFAULT NULL,
"id" int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ("id")
) ENGINE=EXPRESS DISTRIBUTED BY('name') DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例4:分区表上创建自增列
gbase> CREATE TABLE t4(i int default 0,id int auto_increment primary
key )
partition by range(i) partitions 2
subpartition by hash(i) subpartitions 2
(
partition
p0 values less than (50001)
(subpartition sb0,
subpartition sb1
),
partition
p1 values less than (100001)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1010
(subpartition sb10,
subpartition sb11
)
) ;
Query OK, 0 rows affected (Elapsed: 00:00:00.11)
gbase> SHOW CREATE TABLE t4 \G
*************************** 1. row ***************************
Table: t4
Create Table: CREATE TABLE "t4" (
"i" int(11) DEFAULT '0',
"id" int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ("id")
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
PARTITION BY RANGE (i)
SUBPARTITION BY HASH (i)
(PARTITION p0 VALUES LESS THAN (50001)
(SUBPARTITION sb0 ENGINE = EXPRESS,
SUBPARTITION sb1 ENGINE = EXPRESS),
PARTITION p1 VALUES LESS THAN (100001)
(SUBPARTITION sb10 ENGINE = EXPRESS,
SUBPARTITION sb11 ENGINE = EXPRESS))
1 row in set (Elapsed: 00:00:00.01)