[发明专利]一种表结构上下文的快速生成方法及系统有效
申请号: | 202010695237.1 | 申请日: | 2020-07-19 |
公开(公告)号: | CN112000661B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 朱滕波 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 李修杰 |
地址: | 250101 山东省济南*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 上下文 快速 生成 方法 系统 | ||
本发明提供了一种表结构上下文的快速生成方法及系统,本发明通过在本地将数据库中表名和字段名存储在表结构文件中,在编写sql语句时,根据当前输入的内容,在表结构文件中查找到相应的表名和字段名,并在当前光标位置处快速生成上下文,由于数据库表结构文件保存在客户端本地,因此可以极快的速度生成上下文,结合在实际的数据库相关工作中,编写sql工作大量存在,因此可大大提高工作效率,缩短查询等待时间,且准确率高。
技术领域
本发明涉及数据库表结构技术领域,特别是一种表结构上下文的快速生成方法及系统。
背景技术
目前各数据库客户端工具为了提高用户体验,增加软件人性化,在用户编写sql语句时会查询当前已连接的数据库表结构,以上下文的方式展示与当前的输入内容相关的表名或是字段名,帮助用户生成相关查询、修改sql语句。但是为了追求数据的100%准确,客户端工具需实时从数据库中进行查询,有一定的时间软件处于不响应的状态,需要用户等待。尤其是当前全国注重网络安全,各机房都设置有防火墙的情况下,查询速度较慢,等待的时间较长。
发明内容
本发明的目的是提供一种表结构上下文的快速生成方法及系统,旨在解决现有技术中编写sql语句上下文展示存在查询速度慢、等待时间长的问题,实现快速生成sql语句上下文,提高工作效率。
为达到上述技术目的,本发明提供了一种表结构上下文的快速生成方法,所述方法包括以下操作:
在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;
在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;
根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名;
如果当前输入的是表名,则在表结构文件中根据关键字查询所有表名,并根据光标当前输入的内容,对获取的各表表名进行过滤,将包含输入内容的表名输出到上下文中;如果当前输入的是字段名,根据from/where关键字找到当前编写sql的表名,在表结构文件中根据关键字查询该表名下的所有字段名,根据光标当前输入的内容,对获取的表中字段名进行过滤,将包含输入内容的字段名输出到上下文中。
优选地,所述表结构文件的具体结构为:
各表表名保存为一行,以关键字table开头;
每个表的字段名保存成一行,前面以关键字表名开头。
优选地,所述根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名具体为:
获取当前编写sql语句中select/from/where关键字位置以及光标位置,如果光标位置在select和from之间或光标在where之后,则判断当前输入的是字段名;如果光标位置在from和where之间或光标位置在from之后且没有where关键字,则判断当前输入的是表名。
优选地,当前输入的为表名时,所述在表结构文件中根据关键字查询所有表名中的关键字为table;
当前输入的为字段名时,所述在表结构文件中根据关键字查询该表名下的所有字段名中的关键字为表名。
本发明还提供了一种表结构上下文的快速生成系统,所述系统包括:
表结构文件生成模块,用于在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;
表结构文件连接模块,用于在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010695237.1/2.html,转载请声明来源钻瓜专利网。