返回首页

gbase数据、南大通用产品文档:GBase8s新建触发器

更新日期:2024年09月11日

触发器是一种与表相关的数据库对象,它在表进行某些特殊操作时触发。

在对象资源管理器中,依次展开“服务器”、“数据库”、“表”,在“触发器”节点上单
击右键,选择“新建触发器”。

打开创建触发器模版。

修改后点击“执行 SQL ”按钮即可。

特殊配置
检查各服务器上操作系统的型号和版本,
进行相应的额外特殊配置。
该环节动作需要以
root 用户进行操作。

CentOS/RHEL 7.2+操作系统,请参阅CentOS/RHEL 7.2+环境配置。

Kylin V10 操作系统,请参阅Kylin V10 环境配置。

基于Ubuntu 操作系统,请参阅基于Ubuntu 环境配置。

其他操作系统,暂不需要额外配置。
软件检查
步骤1 检查bison、flex、patch、bzip2 依赖是否已安装,执行如下命令:
[root@gbase8c ~]# rpm -q bison flex patch bzip2
bison-3.0.4-2.el7.x86_64
flex-2.5.37-6.el7.x86_64
patch-2.7.1-12.el7_7.x86_64
bzip2-1.0.6-13.el7.x86_64
返回如下信息即可。否则下载缺少的软件依赖,如:
[root@gbase8c ~]# yum install -y bison flex patch bzip2
步骤2 虚拟机环境下,检查是否支持rdtscp 指令集,执行如下命令:
[root@gbase8c ~]# cat /proc/cpuinfo | grep rdtscp
返回如下信息即可。否则请参考对应CPU 型号官网资料,安装rdtscp 指令集。
flags
: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc
arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3
cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ssbd
ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilities
……

GBase 8c V5 安装部署手册(简易版)
南大通用数据技术股份有限公司
8

函数说明
TRUNC函数返回以指定元素格式截去一部分的日期值。
说明

date/datetime 为必选参数,表示输入的一个日期值;

format 为可选参数,表示日期格式,用以指定的元素格式来截去输入的日期值。如果
省略此参数,则由最近的日期截去。
表 5-138format 支持的类型如下表所示。
参 数
说 明
year
返回当年第一天
yyyy
返回当年第一天
month
返回当月第一天
mm
返回当月第一天
dd
返回当天的日期
hh
得到当天凌晨0 点0 分0 秒的日期
mi
得到当天凌晨0 点0 分0 秒的日期

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 905

示例
示例1
返回当年的第一天。
gbase> SELECT TRUNC(current_date,'year') FROM t;
+----------------------------+
| TRUNC(current_date,'year') |
+----------------------------+
| 2013-01-01 |
+----------------------------+
1 row in set
示例2
返回当年的第一天。
gbase> SELECT TRUNC(current_date,'yyyy') FROM t;
+----------------------------+
| TRUNC(current_date,'yyyy') |
+----------------------------+
| 2013-01-01 |
+----------------------------+
1 row in set
示例3
返回当月的第一天。
gbase> SELECT TRUNC(current_date,'mm') FROM t;
+--------------------------+
| TRUNC(current_date,'mm') |
+--------------------------+
| 2013-10-01 |
+--------------------------+
1 row in set
示例4
返回当天的日期。
gbase> SELECT TRUNC(current_date,'dd') FROM t;
+--------------------------+
| TRUNC(current_date,'dd') |
+--------------------------+
| 2013-10-12 |

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 906
+--------------------------+
1 row in set

示例5
得到当天凌晨0点0分0秒的日期。
gbase> SELECT TRUNC(current_date,'hh') FROM t;
+--------------------------+
| TRUNC(current_date,'hh') |
+--------------------------+
| 2013-10-12 00:00:00 |
+--------------------------+
1 row in set
示例6
得到当天凌晨0点0分0秒的日期。
gbase> SELECT TRUNC(current_date,'mi') FROM t;
+--------------------------+
| TRUNC(current_date,'mi') |
+--------------------------+
| 2013-10-12 00:00:00 |
+--------------------------+
1 row in set

注意
Oracle 引擎的TRUNC 函数支持日期和数字类型
(同8a 的TRUNCATE 函数)

的截断,因此第一个参数要么为日期类型,如果是字符串,则被认为是数字
类型,要能够转换成数字。例如:
TRUNC(TO_DATE(‘2017-08-30’, ‘YYYY-MM-DD’), ‘year’)
TRUNC(1232.23454, 2)同8a 的TRUNCATE 函数