人大金仓与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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2813256.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

一个创业好项目,最适合白手起家的创业项目

一个创业好项目&#xff0c;最适合白手起家的创业项目 白手起家是很多比较青睐的一种创业模式&#xff0c;但是白手起家并不是一件简单的事情&#xff0c;首先就需要创业者要选好&#xff0c;那么什么样的创业项目适合白手起家呢?今天就给大家进行了盘点&#xff0c;希望能够帮…

Spring Cloud微服务注册中心Consul入门使用(上)

一、Consul安装使用 1.1 what’s the consul? Consul是Go语言编写的一个分布式高可用的服务网格解决方案&#xff0c;提供包括服务发现、配置和分段功能在内的全功能控制平面。它的每个功能都可以单独使用&#xff0c;也可以用它来构建完整的服务网格。 为什么要用它呢&…

3D工业相机及品牌集合

3D相机可以获取物理世界的空间信息&#xff0c;即立体三维的物理信息&#xff0c;不仅可以拍摄到场景的二维图像&#xff0c;而且能获取物体之间的位置关系&#xff0c;再经过进一步深化处理&#xff0c;还能完成三维建模等应用。 3D相机三种方案 1、结构光 通常采用特定波长…

数字孪生的技术开发平台

数字孪生的开发平台可以基于各种软件和硬件工具来实现&#xff0c;这些平台提供了丰富的功能和工具&#xff0c;帮助开发人员构建、部署和管理数字孪生系统&#xff0c;根据具体的需求和技术要求&#xff0c;开发人员可以选择合适的平台进行开发工作。以下列举了一些常见的数字…

拼多多商品详情数据,item_get-根据ID取拼多多商品详情

item_get-根据ID取商品详情 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥WeChat18305163218api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_sear…

2023年消费者心中的十大信赖品牌,好狄空气能热水器成功上榜

随着环保意识的增强和能源消耗的持续关注&#xff0c;空气能热水器以其高效节能、绿色环保的特性赢得了越来越多消费者的青睐。市场上琳琅满目的空气能热水器品牌让消费者在选择时既兴奋又困惑。究竟哪些品牌能在激烈的竞争中脱颖而出&#xff0c;成为消费者心目中的佼佼者呢&a…

RK3568平台开发系列讲解(Linux系统篇)SPI 客户端通信

🚀返回专栏总目录 文章目录 一、spi_transfer二、spi_message三、初始化沉淀、分享、成长,让自己和他人都能有所收获!😄 SPI I/O模型由一组队列消息组成。我们提交一个或多个struct spi_message结构时,这些结构以同步或异步方式处理完成。单个消息由一个或多个struct sp…

【目标检测新SOTA!v7 v4作者新作!】YOLO v9 思路设计 + 全流程优化 + 手把手训练自己数据

YOLO v9 思路复现 全流程优化 手把手训练自己数据 提出背景&#xff1a;深层网络的 信息丢失、梯度流偏差YOLO v9 设计逻辑可编程梯度信息&#xff08;PGI&#xff09;&#xff1a;使用PGI改善训练过程广义高效层聚合网络&#xff08;GELAN&#xff09;&#xff1a;使用GELAN…

深度学习神经网络实战:多层感知机,手写数字识别

目的 利用tensorflow.js训练模型&#xff0c;搭建神经网络模型&#xff0c;完成手写数字识别 设计 简单三层神经网络 输入层 28*28个神经原&#xff0c;代表每一张手写数字图片的灰度隐藏层 100个神经原输出层 -10个神经原&#xff0c;分别代表10个数字 代码 // 导入 Ten…

CSS 的盒模型

CSS 的盒模型 在HTML里&#xff0c;每一个元素就相当于是一个矩形的 “盒子” &#xff0c;这个盒子由以下这几个部分构成&#xff1a;1.边框border&#xff0c;2.内容content&#xff0c;3.内边距padding&#xff0c;4.外边距margin 边框border 基础属性描述border-width粗…

【Python笔记-设计模式】中介者模式

一、说明 中介者模式是一种行为设计模式&#xff0c;减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互&#xff0c;迫使它们通过一个中介者对象进行合作。 (一) 解决问题 降低系统中对象之间的直接通信&#xff0c;将复杂的交互转化为通过中介者进行的间接交…

新的一年,如何优化企业库存管理?

随着社会的发展和经济的不断增长&#xff0c;库存管理成为了企业运营中非常重要的一环。库存作为企业的资产之一&#xff0c;直接影响着企业的盈利能力和竞争优势。因此&#xff0c;对企业库存进行科学的分析和管理&#xff0c;成为了确保企业持续稳定发展的必要手段之一。企业…

设计模式(十) - 工厂方式模式

前言 在此前的设计模式&#xff08;四&#xff09;简单工厂模式中我们介绍了简单工厂模式&#xff0c;在这篇文章中我们来介绍下工厂方法模式&#xff0c;它同样是创建型设计模式&#xff0c;而且又有些类似&#xff0c;文章的末尾会介绍他们之间的不同。 1.工厂方法模式简介 …

CentOS删除除了最近5个JAR程序外的所有指定Java程序

帮我写一个shell脚本&#xff0c;ps -eo pid,lstart,cmd --sort-start_time | grep "pgz-admin"查到的结果&#xff0c;返回的所有进程PID&#xff0c;第六个之上的&#xff0c;全部kill 当然&#xff0c;你可以创建一个简单的Shell脚本来完成这个任务。以下是一个例…

探索创造无限可能——Autodesk AutoCAD 2022(CAD 2022)系统要求

随着科技的不断进步和发展&#xff0c;计算机辅助设计&#xff08;CAD&#xff09;已经成为现代设计行业中不可或缺的一部分。在众多CAD软件中&#xff0c;Autodesk AutoCAD 2022&#xff08;CAD 2022&#xff09;无疑是最受欢迎和广泛应用的一款软件。作为一款全球领先的CAD软…

(十八)devops持续集成开发——使用docker安装部署jenkins服务

前言 本节内容介绍如何使用docker容器来部署安装jenkins流水线服务。关于docker容器的安装本节内容不做介绍。请读者提前安装。 正文 ①使用docker查找jenkins官方镜像 ② 拉取jenkins官方镜像jenkins/jenkins&#xff0c;选择一个最新稳定版本&#xff0c;避免一些插件不兼…

日更【系统架构设计师知识总结2】指令系统(结合真题)

【原创精华】结合老师的讲授、耗费三个小时的精华总结对正在备考的你一定有用&#xff01;&#xff01;自己一点点手打、总结的脑图&#xff0c;把散落在课本以及老师讲授的知识点合并汇总&#xff0c;反复提炼语言&#xff0c;形成知识框架。希望能给同样在学习的伙伴一点帮助…

如何理解介电常数与耗散因子

目录 电介质的极化过程 介电常数的定义 介电常数的物理意义 耗散因子的定义 耗散因子的物理意义 实际应用 结语 电介质的极化过程 电偶极子被定义为一对极性相反但相距很近的等量电荷,与每个偶极子相关联的一个矢量成为偶极矩,如果为每个电荷的带电量,为从负电荷到正电…

OpenHarmony开发之Stage模型卡片服务详解~

介绍 本示例展示了Stage模型卡片提供方的创建与使用。 用到了卡片扩展模块接口&#xff0c;ohos.app.form.FormExtensionAbility。 卡片信息和状态等相关类型和枚举接口&#xff0c;ohos.app.form.formInfo 。 卡片提供方相关接口的能力接口&#xff0c;ohos.app.form.form…

力扣● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

● 1049. 最后一块石头的重量 II 题目要把石头分成两堆&#xff0c;这两堆的重量差值最小。相撞之后剩下的石头重量就最小。其实就是要尽量把石头分为差不多重量的两堆&#xff0c;和昨天的● 416. 分割等和子集相似&#xff0c;这样就转换成了01背包问题。 和416题一样&…