当前位置: 首页 > news >正文

人大金仓与mysql的差异与替换

  1. 人大金仓中不能使用~下面的符号,字段中使用”,无法识别`
  2. 建表语句
    创建表时语句中只定义字段名.字段类型.是否是否为空
    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~=point100,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的差异与替换

人大金仓中不能使用~下面的符号&#xff0c;字段中使用”&#xff0c;无法识别建表语句 创建表时语句中只定义字段名.字段类型.是否是否为空 Varchar类型改为varchar&#xff08;长度 char&#xff09; Int(0) 类型为int4 定义主键&#xff1a;CONSTRAINT 键名 主键类型&#x…...

Excel2LaTeX插件的使用、LaTeX表格

目录 一、下载Excel2Latex 二、使用Excel2Latex 1、将Excel2LaTeX文件添加到加载项 2、导出LaTex的表格数据 3、注意事项 1&#xff09;生成的latex表格断断续续问题 2&#xff09;改变线形的粗细 3&#xff09;表格太大&#xff0c;需要缩小到适应大小 4&#xff09;…...

MySQL 用了哪种默认隔离级别,实现原理是什么?

MySQL 的默认隔离级别是 RR - 可重复读&#xff0c;可以通过命令来查看 MySQL 中的默认隔离级别。 RR - 可重复读是基于多版本并发控制&#xff08;Multi-Version Concurrency Control&#xff0c;MVCC &#xff09;实现的。MVCC&#xff0c;在读取数据时通过一种类似快照的方…...

【C++初阶】第四站:类和对象(下)(理解+详解)

前言&#xff1a; 本篇知识点&#xff1a;初始化列表、explicit关键字、static成员、友元、内部类、匿名对象、编译器的优化 专栏&#xff1a;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安装&#x1f525;2.2.1、redis核心文件2.2.2、启动方式2.2.3、redis桌面客户端1、redis命令…...

Windows无法识别exFAT格式怎么办?

Windows通常无法读取Mac格式的驱动器。如果使用Apple的HFS Plus将驱动器格式化为exFAT&#xff0c;默认情况下Windows无法读取exFAT驱动器&#xff0c;即使exFAT文件系统与Mac和Windows兼容。事实上&#xff0c;一些制造商销售的“Mac驱动器”是用这种限于Mac的文件系统预先格式…...

AI大模型的发展趋势?

大模型的发展趋势主要体现在以下几个方面&#xff1a; 1、模型规模的增长&#xff1a; 随着数据量和计算能力的不断增加&#xff0c;大型模型的规模也在不断扩大。模型参数数量、层数等指标不断刷新&#xff0c;以应对更复杂的任务和更大规模的数据。 2、多模态融合&#xff…...

List去除重复数据的五种方式

1、使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 ArrayList 删除重复数据的最佳方法。LinkedHashSet 在内部完成两件事&#xff1a; 删除重复数据 保持添加到其中的数据的顺序 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 达林顿晶体管&#xff0c;连接的阵列&#xff0c;非常适合逻辑接口电平数字电路&#xff08;例 如 TTL&#xff0c;CMOS 或PMOS 上/NMOS&#xff09;和较高的电流/电压&#xff0c;如电灯电磁阀&#xff0c;继电器&#xff0c;打印机或其他类似的负…...

若依springboot接入feign踩坑记录

问题情境&#xff1a; 简单的项目采用了若依的前后端分离版本单体应用&#xff0c;之前采用forest请求调用第三方接口&#xff0c;改为feign接口调用后&#xff0c;引入feign报错 error creating bean with name ‘configurationPropertiesbean’ 解决方案&#xff1a; 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每一篇目具体&#xff1a; Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 Opencv(5)平滑处理 具体Opencv相关demo代码欢迎访问我的github仓库&#xff08;包含python和c代码&#xff09; demo代码 文章目录 Opencv一…...

Python装饰器的使用详解

目录 1、函数装饰器 1.1、闭包函数 1.2、装饰器语法 1.3、装饰带参数的函数 1.4、被装饰函数的身份问题 1.4.1、解决被装饰函数的身份问题 1.5、装饰器本身携带/传参数 1.6、嵌套多个装饰器 2、类装饰器 装饰器顾名思义作为一个装饰的作用&#xff0c;本身不改变被装…...

基于springboot+vue的党员教育和管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

三个伪类让你的CSS代码更加优雅

公众号&#xff1a;程序员白特&#xff0c;欢迎一起交流学习~ 原文&#xff1a;CSS整洁之道——:is()、:where()和:has()的用法 - 掘金 (juejin.cn) 让我们写出优雅界面的CSS&#xff0c;它也总是把自己进化得更加优雅。 今天我们花5分钟时间学习三个优雅的CSS伪类&#xff1a…...

幻兽帕鲁联机服务器搭建

幻兽帕鲁联机服务器搭建 开通云服务器 云主机购买|香港云服务器|香港云主机|美国云服务器|弹性云主机租用尽在-特网科技 建议选择4核心 16G内存 10M带宽&#xff0c;可满足6-15人游玩 下载安装脚本 windows系统: 下载 http://downinfo.myhostadmin.net/palserver/install…...

京东商品优惠券API获取商品到手价

item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[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技术概论&#xff08;3&#xff09; Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...