返回首页

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

更新日期:2024年09月11日

功能描述
自增列是指定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

虽然静态 SQL 是有用的,
但在您编写程序的时候,
它要求您知道每个 SQL 语句确切内容。
例如,您必须确切说明在任何 WHERE 子句中测试哪些列,以及在任何选择列表中重命名
哪些列。
当您编写程序来执行定义良好的任务时,不存在任何问题。但不可事先完善地定义某些程
序的数据库任务。特别地,必须响应交互用户的程序可能需要根据用户输入的内容来组合
SQL 语句。
动态 SQL 允许程序在执行期间形成 SQL 语句,
因此,
用户输入决定该语句的内容。
以下
列步骤执行此活动:
1. 程序将 SQL 语句的文本组装为一个字符串,将该字符串存储在程序变量中。
2. 它执行 PREPARE 语句,请求数据库服务器测试该语句文本并为执行来准备它。
3. 它使用 EXECUTE 语句来执行该准备好的语句。
这样,基于任何种类的用户输入,程序可构造并然后使用任何 SQL 语句。例如,它可读
取一个 SQL 语句的文件并准备和执行每一语句。
DB-Access 是一个您可用来交互地探索 SQL 的实用程序,它是一个动态地构造、准备和
执行 SQL 语句的 GBase 8s ESQL/C 程序。例如,DB-Access 允许您使用简单的、交互式
的菜单来指定表的行。当您完成时,DB-Access 动态地构建必需的 CREATE TABLE 或
ALTER TABLE 语句并准备和执行它。



sword GCIDateAddMonths (
GCIError *err,
const GCIDate *date,
sb4 num_months,
GCIDate *result
);

对给定的日期值,增加或减去相应的月数。注意: 如果输入日期值为当月最后一天,则
进 行加减运算后得出的结果值也调整为对应月份的最后一天。如2021/2/28 加1个月得
到 2021/3/31 ,2021/11/30 减3个月得到 2021/8/31。

参数
输入
/输出


err
输入
错误信息句柄, 该接口调用失败时, 错误信息会存在该句柄上
date
输入
日期值的被加数或被减数
num_months
输入
日期值的加数或减数
result
输出
计算结果

如果执行成功, 返回GCI_SUCCESS,否则返回GCI_ERROR。