返回首页

gbase数据、南大通用产品文档:GBase8sINTERVAL 数据类型

更新日期:2024年09月11日

INTERVAL 数据类型存储表示时间范围的值。INTERVAL 类型分为两类:year-month
时间间隔和 day-time 时间间隔。
year-month 时间间隔可以表示年和月的范围,day-time 时间间隔可以表示天、小
时、分钟、秒和秒的小数的范围。
INTERVAL 值总是由表示时间单位的一个值或一串值组成。在数据定义语句(例如:
定义 INTERVAL 数据类型精度的 CREATE TABLE 或 ALTER TABLE)中,限定符必须使用以
下格式:
INTERVAL largest_qualifier(n) TO smallest_qualifier
如表 1中所示,此处 largest_qualifier 和 smallest_qualifier 关键字取自两个
INTERVAL 类中的一个。
如果 SECOND(或更大的时间单位)是 largest_qualifier,那么 INTERVAL 数据类
型的声明可有选择地指定最大时间单位的精度 n(n 的范围为 1 到 9);这不是
DATETIME 数据类型的功能。
如果 smallest_qualifier 是 FRACTION,那么还可以指定范围为 1 到 5 的小数
位。对于 FRACTION TO FRACTION 限定符,n 的上限是 5 而不是 9。有两类不可比较的
INTERVAL 数据类型:
smallest_qualifier 大于 DAY
largest_qualifier 小于 MONTH
表 6. 时间间隔类
时间间隔类
时间单位
有效条目
YEAR-MONTH INTERVAL YEAR
年数

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 100 -
时间间隔类
时间单位
有效条目
YEAR-MONTH INTERVAL MONTH
月数
DAY-TIMEINTERVAL
DAY
天数
DAY-TIMEINTERVAL
HOUR
小时数
DAY-TIMEINTERVAL
MINUTE
分钟数
DAY-TIMEINTERVAL
SECOND
秒数
DAY-TIMEINTERVAL
FRACTION
秒的十进制小数,最多为 5 位。缺省小数位是 3 位
(千分之一秒)。要指定非缺省小数位,请写
FRACTION(n),其中 1 ≤ n ≤ 5。

如同 DATETIME 数据类型一样,可以定义 INTERVAL,从而只包括所需的部分时间单
位。但由于“月份”的构造(如在日历日期中使用时)不是具有固定天数的时间单位,所
以单个 INTERVAL 值不能组合月份和日;不支持涉及两种不同的 INTERVAL 类的操作数的
算术。
输入到 INTERVAL 列中的值不需要包括在列的数据类型声明中指定的全部时间单位。
例如,可以将具有 HOUR TO SECOND 精度的值输入定义为 DAY TO SECOND 的列中。但
是,值必须总是由连续的时间单位组成。在前面的示例中,不能只输入 HOUR 和 SECOND
值;还必须包括 MINUTE 值。
有效的 INTERVAL 文字包含 INTERVAL 关键字、要输入的值和字段限定符。(请参阅
GBase 8s SQL 指南:语法 中对文字时间间隔的论述。)当值只包含一个字段时,最大和
最小字段相同。
当在 INTERVAL 列中输入值时,必须指定值中的最大和最小字段,就如对待
DATETIME 值那样。另外,可以有选择地指定第一个字段的精度(如果最后一个字段是
FRACTION,那么还可以指定最后一个字段的小数位)。如果最大和最小字段限定符都是
FRACTION,那么只能在最后一个字段中指定小数位。
最大和最小字段的可接受限定符与表 1显示的 INTERVAL 字段的列表完全相同。
如果使用 DB-AccessTABLE 菜单但没有指定任何 INTERVAL 字段限定符,那么指定缺
省 INTERVAL 限定符 YEAR TO YEAR。
INTERVAL 值中的 largest_qualifier 最多可以为 9 位数(FRACTION 除外,它不能
超过 5 位数),但如果想要输入的值大于该字段允许的缺省位数,那么必须显式标识输
入的值中的有效位数。例如,要定义最多可存储 999 天的 DAY TO HOUR 类型的
INTERVAL,可以按以下方式进行指定:
INTERVAL DAY(3) TO HOUR
INTERVAL 文字值使用 DATETIME 文字所用的定界符(在同一 INTERVAL 值中无效的

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 101 -
MONTH 和 DAY 时间单位除外)。下表显示了 INTERVAL 定界符。
表 7. INTERVAL 定界符
定界符
在 INTERVAL 文字中的位置
连字符
在值的 YEAR 与 MONTH 部分之间
空格
在值的 DAY 与 HOUR 部分之间
冒号
在值的 HOUR、MINUTE 与 SECOND 部分之间
小数点
在值的 SECOND 与 FRACTION 部分之间

还可以将 INTERVAL 值作为字符串输入。字符串必须包括在列的数据类型声明中指定
的同一时间单位的信息。下面示例中的 INSERT 语句显示了作为字符串输入的 INTERVAL
值:
INSERT INTO manufact (manu_code, manu_name, lead_time)
VALUES ('BRO', 'Ball-Racquet Originals', '160')
由于将 lead_time 列定义为 INTERVAL DAY(3) TO DAY,所以此 INTERVAL 值只需要
一个字段,即前导时间所需的日范围。如果字符串不包含所有字段的信息(或添加其他字
段),那么数据库服务器返回错误。有关将 INTERVAL 值作为字符串来输入的更多信息,
请参阅 GBase 8s SQL 指南:语法。
缺省情况下,INTERVAL 列的所有字段都是 2 位数,年份和小数字段除外。年份字段
存储为 4 位数。小数字段需要 n 位数,其中 1 ≤ n ≤ 5,上舍入为偶数。可以使用以
下公式(上舍入为整数个字节)来计算 INTERVAL 值所需的字节数:
(所有字段的总位数)/2 + 1
例如,INTERVAL YEAR TO MONTH 需要 6 位数(4 位用于年份,2 位用于月份)并需
要 4(即 (6/2) + 1)个字节的存储空间。
有关将 INTERVAL 用作常量表达式的信息,请参阅 GBase 8s SQL 指南:语法 中对
INTERVAL 字段限定符的描述。


缩容VC 内data 节点:

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
270
1.
重分布数据,转移要删除的数据节点上的数据到其他节点上,清空要删除的数
据节点上数据。
包括步骤:
创建新的distribution
(排除了将要删除的节点)
根
据新的distribution 创建新nodedatamap
(initnodedatamap)
重分布数据到新的
nodedatamap 上删除旧的nodedatamap 和distribution。
2.
从集群中移除该节点。
包括步骤:
从VC 中移除该节点成为集群的freenode从
集群中彻底删除该节点。
3.
卸载该节点上的集群软件。步骤包括:停止被删除节点上的gnode 服务修改
demo.options 使用uninstall 脚本卸载软件。
注:
gnode 节点服务包含有gbase 服务和syncserver 服务,
如果该gnode 节点服
务器上还有gcluster 节点存在,
且需要保留该gcluster 节点,
停止服务不需直接
使用gcluster_services all stop 停止所有服务,
只需使用如下命令单独停止gnode
各项服务:
gcmonit.sh stop
gcluster_services gbase_ip stop 如:gcluster_services gbase_192.168.146.40 stop
gcluster_services syncserver_ip stop 如:gcluster_services
syncserver_192.168.146.40 stop

缩容集群的gcluster 节点:
停止整个集群所有节点的服务修改demo.options 使用uninstall 脚本卸载该节点上
集群软件。

缩容复合节点(gcluster 和gnode 同在一个服务器上):
1.
重分布数据,转移要删除的数据节点上的数据到其他节点上,清空要删除的数
据节点上数据。
2.
从集群中移除该节点。
包括步骤:
从VC 中移除该节点成为集群的freenode从
集群中彻底删除该节点
3.
停止整个集群所有节点的服务
4.
修改demo.options 使用uninstall 脚本卸载该服务器上集群软件(包括gcluster
节点和gnode 节点)

缩容整个VC 步骤:
将需要缩容的VC 中所有库表都删除删除该VC
可参考4.3.1.3.2 删除虚拟集群

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
271
注意

V9.5.3 不支持gcware 节点缩容;

缩容操作必须在已有Coordinator 节点上使用DBA 用户(gbase)执行;

卸载data 节点只需在被卸载节点执行停止集群节点服务的操作;

缩容集群可以卸载掉节点,
也可不必须卸载节点,
而是保留节点在freenode
状态,可转到其它VC 使用

使用卸载命令移除节点时不要使用force 参数,
以免卸载时不检查要卸载的
节点是否正在被集群使用,导致数据损坏。

功能说明

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1483
描述了存在约束的表,以及表的约束类型。
表结构说明
表5- 238 表结构信息说明:




CONSTRAINT_CATALO
G
约束登记目录
CONSTRAINT_SCHEMA
约束所属的数据库名
CONSTRAINT_NAME
约束的名称
TABLE_VC
约束所属表所在的虚拟集群名
TABLE_SCHEMA
约束依赖表所属的数据库名(一般与constraint_schema
相同)
TABLE_NAME
约束所属的表名
CONSTRAINT_TYPE
约束类型[primary key|foreign key|unique|check]