人大金仓与mysql的差异与替换
- 人大金仓中不能使用~下面的符号,字段中使用”,无法识别`
- 建表语句
创建表时语句中只定义字段名.字段类型.是否是否为空
Varchar类型改为varchar(长度 char)
Int(0) 类型为int4
定义主键:CONSTRAINT 键名 主键类型(主键字段)
添加列注释:
COMMENT ON COLUMN “模式”.”表名”.”字段名” IS ‘注释’
如下:
DROP TABLE IF EXISTS "se_tools_library_catalog";
CREATE TABLE "se_tools_library_catalog" ("ID" varchar(100 char) NOT NULL,"CATALOG_NAME" text NULL ,"EXPLAIN" text NULL,"PARENT_ID" varchar(100 char) NULL,"ORDERNUMBER" decimal(65, 30) NULL,"TAG" int4 NULL,CONSTRAINT "se_tools_library_catalog_constraint_1" PRIMARY KEY ("ID")
);
COMMENT ON COLUMN "public"."se_tools_library_catalog"."ID" IS '数据id';
COMMENT ON COLUMN "public"."se_tools_library_catalog"."CATALOG_NAME" IS '分类夹名称/工具名称';
COMMENT ON COLUMN "public"."se_tools_library_catalog"."EXPLAIN" IS '关联父id';
COMMENT ON COLUMN "public"."se_tools_library_catalog"."PARENT_ID" IS '下载时间';
COMMENT ON COLUMN "public"."se_tools_library_catalog"."ORDERNUMBER" IS '排序字段';
COMMENT ON COLUMN "public"."se_tools_library_catalog"."TAG" IS '标识字段分类夹/工具';
COMMENT ON TABLE "public"."se_tools_library_catalog" IS '工具库文件夹分类';
3.string_agg替代GROUP_CONCAT
人大金仓无法使用GROUP_CONCAT函数,由String_agg(字段名,分隔符)替代,分隔符不可省略
若要使用多字段合并使用|| ’ '||分隔字段
如:
select string_agg(name || ''||version,',') from se_pro_config_development where project_id='4MBRH4NKTUKG' and type='1' and version is not null

4.计算时间差,字符串需转换日期型计算
人大金仓计算时间差,如果是字符串类型数据不能直接相减,使用Date转型
如下:
Mysql:
select (s1.plan_end_time-s1.plan_start_time)+1 as TIMES from se_task_import s1
人大金仓:
select Date(s1.plan_end_time)-Date(s1.plan_start_time)+1 as TIMES from se_task_import s1
5.to_number函数
(1)使用to_number去转换一个long型字段,会造成
com.kingbase8.util.KSQLException: 错误: 值 “3059376192540000” 超出类型 integer 的范围
(2)若字段值中是小数,不可使用to_number函数转换数字型,使用+0.0


6.数据库大小写
当前数据库使用的是大小写敏感,所有列名转换为大写,请注意实体类中使用字段名小写或者大写,勿使用大写小混杂,否则无法识别
7.NLSSORT函数
人大金仓数据库无法使用NLSSORT函数
8.group by
人大金仓group by语句比mysql更严格,使用group By 后select查询的字段必须在group by中使用,人大金仓使用的group by的查询结果只包含聚合函数及分组字段
Mysql:
select count(*),name from test group by type
人大金仓:
select count(*),name from test group by type,name
9.日期类型转换
人大金仓中日期转换无法使用DATE_FORMAT,与oracle 一致使用to_date,to_char用于日期和字符串转换
10.列名格式
人大金仓数据库中新增数据,列名不可使用’,必须使用”
格式如下:
INSERT INTO "public"."se_check_org_item"
("id", "checklist_id", "parent_id", "check_item", "description", "item_type", "row_sort_order", "create_time", "creator", "cut_flag")
VALUES('', '', '', '', '', 0, 0, '', '', '');
11.locate函数替代
MySql 中的 LOCATE 函数判断 字符串在另一个字符串中出现的位置, 用 strpos 函数替换
如:select * from SE_PRO_CONFIG_DEVELOPMENT where strpos('root',parent_id)=0;
12.索引
KingBase ES V8R6支持的索引类型如下:
- B-tree索引
B-tree索引是Kingbase ES的默认索引,内部采用的B+树( N叉排序树)实现,由于树状结构每一层节点都有序列,因此非常适合用来做范围查询和优化排序操作。B-tree索引支持的操作符有 >, <, >=, <=, =, IN, LIKE等,同时,优化器也会优先选择B-tree索引来对ORDER BY.MIN.MAX.MERGE JOIN进行有序操作。
使用示例:
create index i_btree on tab_btree using btree(id);
explain analyze select * from tab_btree where id < 10; --有btree索引
- 2.Hash索引
HASH索引查询效率比BTREE高得多,相比BTREE索引需要从根节点查询到叶子节点,且需要多次IO及CPU操作,HASH索引因其索引结构的特殊性,理想情况下仅需一次检索即可定位到数据。
与此同时,HASH也存在一定的局限性,只适合做等值查询。由于HASH索引是通过比较哈希值来做定位,因此当查询列上有较大比例的重复值时,会带来严重的哈希冲突,进而影响查询速度,这种情况下就不建议使用HASH索引。
使用示例:
create index i_hash on tab_hash using hash(id);
explain analyze select * from tab_hash where id < 10; --HASH索引不支持非等值操作
- 3.GiST索引
GIST意为通用搜索树,是一种平衡的.树状结构的访问方法。GIST索引适用于多维数据类型和集合数据类型,可以用来做位置搜索,如包含.相交.左边.右边等。
使用示例:
create index i_gist on tab_gist using gist(po);
explain analyze select * from tab_gist where po << point(100,100); --查询po列上在(100,100)左边的点
4.SP-GiST索引
SP-GiST是“空间分区GiST”的简称。SP-GiST支持分区搜索树,它可用于开发各种不同的非平衡数据结构索引,如四叉树.k-d树和radix树。这些数据结构的共同点是:它们反复地将搜索空间划分成大小不等的分区。与GiST索引类似,SP-GiST可作为一种基础模板来实现多种搜索方法。
使用示例:
create index i_spgist on tab_spgist using spgist(location);
explain analyze select * from tab_spgist where location~=point(100,999);
- 5.GIN索引
GIN是倒排索引,主要适用于包含多个组合值的查询,如数组.全文检索等。
使用示例:
- create index i_gin on tab_gin using gin(to_tsvector(‘english’,
info)); analyze; explain analyze select * from tab_gin where
to_tsvector(‘english’, info) @@ plainto_tsquery( ‘hello’);
–使用GIN索引的全文检索
14.on duplicate key update 替代
on duplicate key update 由 ON CONFLICT(key) do update set 替代,该方法用于批量插入时,若主键已存在则更新指定字段
Mysql:
insert into se_task_plan_template (id,plan_start_time,plan_end_time) values ('4P0OOXCDSA9S','2023-06-21','2023-06-21' ), ('4P016ZXT5M2O_4E3D3KHDI96O_cut_resolve','2023-06-21','2023-07-12' )on duplicate key update plan_start_time=values(plan_start_time),plan_end_time=values(plan_end_time) ;
kingbase:
insert into se_task_plan_template (id,plan_start_time,plan_end_time) values ( '4P0OOXCDSA9S','2023-06-21','2023-06-21' ), ( '4P016ZXT5M2O_4E3D3KHDI96O_cut_resolve','2023-06-21','2023-07-12' )
ON CONFLICT(id) do update set plan_start_time=EXCLUDED.plan_start_time, plan_end_time= se_task_plan_template.plan_end_time ;
注意:
ON CONFLICT(key) 此处的key必须是主键,未设置主键会报错
SQL 错误 [42P10]: 错误: 没有匹配ON CONFLICT说明的唯一或者排除约束 com.kingbase8.util.KSQLException: 错误: 没有匹配ON CONFLICT说明的唯一或者排除约束
若使用语句中值,如下:
EXCLUDED.字段名
若使用原表的某个字段值,如下:
se_task_plan_template.字段名
15.查询列别名中文格式
人大金仓中若需定义中文别名,使用双引号
select name "名称" from se_project

16、 kingbase不能查询空字符(‘’)解决方法:ora_input_emptystr_isnull修改为off

17、 转换字符串为数字类型+0.0 to_number报错也可直接+0.0或者+0即可
SELECT sum(nvl(if(ACTUAL_LIMIT_TIME='','0',ACTUAL_LIMIT_TIME),'0')+0.0) actualLimitTime,
sum(nvl(if(ACTUAL_WORK='','0',ACTUAL_WORK),'0')+0.0) actualWork FROM SE_TASK_PLAN_TEMPLATE where PROJECT_ID ='47GHCWMQJ4LC' and TASK_MODEL in('qaManageCycle','qaManage')
18、mysql中的year函数用to_char(时间,’yyyy’).quarter函数用(to_char(时间,’mm’)+2)/3
19、 Yeakweek()函数用to_char(时间,’yyyyiw’)
20、 update联查更新报错问题 update 表 inner join 不支持,left join也不支持。需修改为where条件,类似下图修改即可1改为2

相关文章:
人大金仓与mysql的差异与替换
人大金仓中不能使用~下面的符号,字段中使用”,无法识别建表语句 创建表时语句中只定义字段名.字段类型.是否是否为空 Varchar类型改为varchar(长度 char) Int(0) 类型为int4 定义主键:CONSTRAINT 键名 主键类型&#x…...
Excel2LaTeX插件的使用、LaTeX表格
目录 一、下载Excel2Latex 二、使用Excel2Latex 1、将Excel2LaTeX文件添加到加载项 2、导出LaTex的表格数据 3、注意事项 1)生成的latex表格断断续续问题 2)改变线形的粗细 3)表格太大,需要缩小到适应大小 4)…...
MySQL 用了哪种默认隔离级别,实现原理是什么?
MySQL 的默认隔离级别是 RR - 可重复读,可以通过命令来查看 MySQL 中的默认隔离级别。 RR - 可重复读是基于多版本并发控制(Multi-Version Concurrency Control,MVCC )实现的。MVCC,在读取数据时通过一种类似快照的方…...
【C++初阶】第四站:类和对象(下)(理解+详解)
前言: 本篇知识点:初始化列表、explicit关键字、static成员、友元、内部类、匿名对象、编译器的优化 专栏:C初阶 目录 再谈构造函数 1️⃣构造函数体赋值 2️⃣初始化列表 explicit关键字 static成员 1.static概念 2.static特性 面试…...
redis的基本数据类型(一)
redis的基本数据类型 1、redis1.1、数据库分类1.2、NoSQL分类1.3、redis简介1.4、redis应用1.5、如何学习redis 2、redis的安装2.1、Windows安装2.2.1、客户端redis管理工具 2.2、Linux安装🔥2.2.1、redis核心文件2.2.2、启动方式2.2.3、redis桌面客户端1、redis命令…...
Windows无法识别exFAT格式怎么办?
Windows通常无法读取Mac格式的驱动器。如果使用Apple的HFS Plus将驱动器格式化为exFAT,默认情况下Windows无法读取exFAT驱动器,即使exFAT文件系统与Mac和Windows兼容。事实上,一些制造商销售的“Mac驱动器”是用这种限于Mac的文件系统预先格式…...
AI大模型的发展趋势?
大模型的发展趋势主要体现在以下几个方面: 1、模型规模的增长: 随着数据量和计算能力的不断增加,大型模型的规模也在不断扩大。模型参数数量、层数等指标不断刷新,以应对更复杂的任务和更大规模的数据。 2、多模态融合ÿ…...
List去除重复数据的五种方式
1、使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 ArrayList 删除重复数据的最佳方法。LinkedHashSet 在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 Java 示例使用 LinkedHashSet 删除 arraylist 中的重复项。在给定的示例…...
VUE3自定义文章排行榜的简单界面
文章目录 一、代码展示二、代码解读三、结果展示 一、代码展示 <template><div class"article-ranking"><div class"header"><h2 class"title">{{ title }}</h2></div><div class"ranking-list&qu…...
七通道NPN 达林顿管GC2003,专为符合标准 TTL 而制造,最高工作电压 50V,耐压 80V
GC2003 内部集成了 7 个 NPN 达林顿晶体管,连接的阵列,非常适合逻辑接口电平数字电路(例 如 TTL,CMOS 或PMOS 上/NMOS)和较高的电流/电压,如电灯电磁阀,继电器,打印机或其他类似的负…...
若依springboot接入feign踩坑记录
问题情境: 简单的项目采用了若依的前后端分离版本单体应用,之前采用forest请求调用第三方接口,改为feign接口调用后,引入feign报错 error creating bean with name ‘configurationPropertiesbean’ 解决方案: spri…...
Lumerical Script ------ Error: <文件目录> line x:syntax error
Lumerical Script ------ Error: <文件目录> line x:syntax error 引言正文引言 在 Lumerical Script ------ Error: line 0: syntax error 一文中我们介绍了一种常见的错误提示信息。这里,我们使用类似的代码,介绍另一种提示错误提示信息。 正文 有时候,当我们在…...
Opencv基础与学习路线
Opencv Opencv每一篇目具体: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 Opencv(5)平滑处理 具体Opencv相关demo代码欢迎访问我的github仓库(包含python和c代码) demo代码 文章目录 Opencv一…...
Python装饰器的使用详解
目录 1、函数装饰器 1.1、闭包函数 1.2、装饰器语法 1.3、装饰带参数的函数 1.4、被装饰函数的身份问题 1.4.1、解决被装饰函数的身份问题 1.5、装饰器本身携带/传参数 1.6、嵌套多个装饰器 2、类装饰器 装饰器顾名思义作为一个装饰的作用,本身不改变被装…...
基于springboot+vue的党员教育和管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
三个伪类让你的CSS代码更加优雅
公众号:程序员白特,欢迎一起交流学习~ 原文:CSS整洁之道——:is()、:where()和:has()的用法 - 掘金 (juejin.cn) 让我们写出优雅界面的CSS,它也总是把自己进化得更加优雅。 今天我们花5分钟时间学习三个优雅的CSS伪类:…...
幻兽帕鲁联机服务器搭建
幻兽帕鲁联机服务器搭建 开通云服务器 云主机购买|香港云服务器|香港云主机|美国云服务器|弹性云主机租用尽在-特网科技 建议选择4核心 16G内存 10M带宽,可满足6-15人游玩 下载安装脚本 windows系统: 下载 http://downinfo.myhostadmin.net/palserver/install…...
京东商品优惠券API获取商品到手价
item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,i…...
Flutter Version Manager (FVM): Flutter的版本管理终极指南
Flutter笔记 Flutter Version Manager (FVM) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-websit…...
Docker技术概论(3):Docker 中的基本概念
Docker技术概论(3) Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
