返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

查询结果集单行记录显示.............................. 364

功能描述
自增列是指定auto_increment 属性的列,自增列的列值单调递增(不保证连续)。
自增列支持在以下数据类型的列上使用:tinyint、smallint、int、bigint。自增列可
以唯一识别表中每一条记录,可方便用于查询、修改、删除等操作。
说明

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

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

在集群哈希分布表中,自增列不能作为哈希分布列;

分区表中,自增列不能作为分区条件列。

默认不允许DML 操作自增列,即:

insert 不能显式插入数据(因为大数据量情况下逐条检查插入
数据和已有数据是否唯一递增会严重影响性能);

可以给自增列insert 指定特定值NULL、0、
default,
指定这三
个值不影响自增列,自增列仍然保持系统自动递增维护的值;

update 不能更新自增列;

merge 不能update/insert 自增列。

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

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1014

GBASE_BIND
 结构说明
该结构用于语句输入(发送给服务器的数据值)和输出(从服务器返回的
结果值)
。对于输入,它与gbase_stmt_bind_param()一起使用,用于将参数数
据值绑定到缓冲区上,以供gbase_stmt_execute()使用。对于输出,它与
gbase_stmt_bind_result()一起使用,用于绑定结果缓冲区,以便用于用
gbase_stmt_fetch()以获取行。
GBASE_BIND 结构包含下述供应用程序使用的成员。每个成员用于输入和输
出,但在某些时候,也能用于不同的目的,具体情况取决于数据传输的方向。
 结构成员

GBase 8a 程序员手册C API 篇


- 52 -

南大通用数据技术股份有限公司
名 称
类 型
描 述
buffer_type
enum_field_typ
es
缓冲的类型。
buffer
void *
指向缓冲区的指针。
buffer_length
unsigned long
缓冲区的实现大小,单位为字节。
length
unsigned long*
指向unsigned long 变量的指针,
该变量指明了存储在*buffer 中数
据的实际字节数。
is_null
gs_bool*
该成员指向gs_bool 变量,如果值
为NULL,该变量为“真”,如果值为
非NULL,该变量为“假”。“is_null”
是指向布尔类型的指针,而不是布
尔标量,
以便能以下述方式使用它:

1、如果数据值总是
NULL,使用
GBASE_TYPE_NULL 绑
定列。
2、如果数据值总是
NOT NULL,设置
is_null =
(gs_bool*) 0。
3、在所有其他情况
下,应将is_null 设
置为gs_bool 变量的
地址,并在各次执行
之间恰当地更改变量
的值,以指明数据值
是NULL 或NOT NULL。

is_unsigned
gs_bool
对于无符号类型,应将
“is_unsigned”设置为“真”,对于带
符号类型,应将其设置为“假”。



GBase 8a 程序员手册C API 篇
南大通用数据技术股份有限公司

- 53 -
名 称
类 型
描 述
error
gs_bool
对于输出,该成员用于通报数据截
短错误。必须通过调用带有
GBASE_REPORT_DATA_TRUNCATION
选项的gbase_options(),启用截
短通报功能。允许该功能后,
gbase_stmt_fetch()返回
GBASE_DATA_TRUNCATED,而且对于
出现截短情况的参数,在
GBASE_BIND 结构中,错误标志为
“真”。截短指明丢失了符号或有效
位数,或字符串过长以至于无法容
纳在1列中。