CN104166737A - 用于数据库名称的修改方法和装置 - Google Patents

用于数据库名称的修改方法和装置 Download PDF

Info

Publication number
CN104166737A
CN104166737A CN201410449648.7A CN201410449648A CN104166737A CN 104166737 A CN104166737 A CN 104166737A CN 201410449648 A CN201410449648 A CN 201410449648A CN 104166737 A CN104166737 A CN 104166737A
Authority
CN
China
Prior art keywords
database
title
template
name
storing process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410449648.7A
Other languages
English (en)
Other versions
CN104166737B (zh
Inventor
洪超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410449648.7A priority Critical patent/CN104166737B/zh
Publication of CN104166737A publication Critical patent/CN104166737A/zh
Application granted granted Critical
Publication of CN104166737B publication Critical patent/CN104166737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于数据库名称的修改方法和装置。其中,该用于数据库名称的修改方法包括:获取第一数据库,第一数据库为根据第一模板数据库生成的数据库,第一模板数据库为第一预设数据库;执行第一数据库的存储过程,存储过程为调用第二数据库中的对象的过程,第二数据库为根据第二模板数据库生成的数据库,第二模板数据库为第二预设数据库;以及将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。通过本发明,解决了相关技术中手动编辑每个存储过程对所使用的数据库名称进行修改时,工作量大的问题。

Description

用于数据库名称的修改方法和装置
技术领域
本发明涉及数据库领域,具体而言,涉及一种用于数据库名称的修改方法和装置。
背景技术
目前,应用系统中的数据库是按照客户来划分的。对于新增客户,首先会为其分配一个编号,然后根据模板数据库为其生成数据库,该数据库的名称包含前述编号。由于应用系统后台有多个模板数据库,且在各个模板数据库的存储过程中会涉及到跨库调用逻辑,并且各个存储过程中使用的数据库名称是模板数据库的名称,因此在根据模板数据库生成的新数据库时,需要将所使用的数据库名称修改为由模板数据库生成的数据库的名称。
在相关技术中,为了实现前述数据库名称的修改,一般在生成的新数据库中,采用手动方式,编辑每个存储过程,将所使用的数据库名称修改为由模板数据库生成的数据库的名称。手动方式虽然可以修改数据库名称,然而,由于每个存储过程中涉及的跨库调用逻辑多,因此修改多,工作量大,且大多为重复性的工作,容易出错,风险大。
针对相关技术中手动编辑每个存储过程对所使用的数据库名称进行修改时,工作量大的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于数据库名称的修改方法和装置,以解决相关技术中手动编辑每个存储过程对所使用的数据库名称进行修改时,工作量大的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于数据库名称的修改方法。该方法包括:获取第一数据库,所述第一数据库为根据第一模板数据库生成的数据库,所述第一模板数据库为第一预设数据库;执行所述第一数据库的存储过程,所述存储过程为调用第二数据库中的对象的过程,所述第二数据库为根据第二模板数据库生成的数据库,所述第二模板数据库为第二预设数据库;以及将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
进一步地,将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称包括:获取所述第二模板数据库的名称;获取所述第二数据库的名称;执行数据库名称修改语句,所述数据库名称修改语句用于将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称;以及将所述第二模板数据库的名称修改为所述第二数据库的名称。
进一步地,所述第二数据库的名称中包含所述第二模板数据库的名称的信息,在获取所述第二模板数据库的名称之前,所述修改方法还包括:获取所述第二模板数据库的名称的信息;获取所述第二数据库的编码;以及根据获取的所述第二模板数据库的名称的信息和获取的所述第二数据库的编码生成所述第二数据库的名称。
进一步地,在获取第一数据库之前,所述修改方法还包括:获取所述第一模板数据库;根据获取的所述第一模板数据库生成所述第一数据库。
进一步地,在将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称之前,所述修改方法还包括:获取所述第一数据库的名称,所述第一数据库的名称中包含第一后缀;获取所述第二数据库的名称,所述第二数据库的名称中包含第二后缀;以及判断所述第一后缀与所述第二后缀是否一致,其中,如果判断出所述第一后缀与所述第二后缀一致,则将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
为了实现上述目的,根据本发明的另一方面,提供了一种用于数据库名称的修改装置。该装置包括:第一获取单元,用于获取第一数据库,所述第一数据库为根据第一模板数据库生成的数据库,所述第一模板数据库为第一预设数据库;执行单元,用于执行所述第一数据库的存储过程,所述存储过程为调用第二数据库中的对象的过程,所述第二数据库为根据第二模板数据库生成的数据库,所述第二模板数据库为第二预设数据库;以及修改单元,用于将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
进一步地,所述修改单元包括:第一获取模块,用于获取所述第二模板数据库的名称;第二获取模块,用于获取所述第二数据库的名称;执行模块,用于执行数据库名称修改语句,所述数据库名称修改语句用于将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称;以及修改模块,用于将所述第二模板数据库的名称修改为所述第二数据库的名称。
进一步地,所述第二数据库的名称中包含所述第二模板数据库的名称的信息,所述修改装置还包括:第二获取单元,用于在获取所述第二模板数据库的名称之前,获取所述第二模板数据库的名称的信息;第三获取单元,用于获取所述第二数据库的编码;以及第一生成单元,用于根据获取的所述第二模板数据库的名称的信息和获取的所述第二数据库的编码生成所述第二数据库的名称。
进一步地,所述修改装置还包括:第四获取单元,用于在获取第一数据库之前,获取所述第一模板数据库;以及第二生成单元,用于根据获取的所述第一模板数据库生成所述第一数据库。
进一步地,所述修改装置还包括:第五获取单元,用于在将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称之前,获取所述第一数据库的名称,所述第一数据库的名称中包含第一后缀;第六获取单元,用于获取所述第二数据库的名称,所述第二数据库的名称中包含第二后缀;以及判断单元,用于判断所述第一后缀与所述第二后缀是否一致,其中,所述修改单元还用于在判断出所述第一后缀与所述第二后缀一致时,将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
通过本发明,采用获取第一数据库,第一数据库为根据第一模板数据库生成的数据库,第一模板数据库为第一预设数据库;执行第一数据库的存储过程,存储过程为调用第二数据库中的表逻辑的过程,第二数据库为根据第二模板数据库生成的数据库,第二模板数据库为第二预设数据库;以及将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称,解决了相关技术中手动编辑每个存储过程对所使用的数据库名称进行修改时,工作量大的问题,进而通过一次执行即可实现修改所有需要修改的数据库名称,达到了提高工作效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的用于数据库名称的修改装置的示意图;
图2是根据本发明实施例的优选的用于数据库名称的修改装置的示意图;
图3是根据本发明实施例的用于数据库名称的修改方法的流程图;以及
图4是根据本发明实施例的优选的用于数据库名称的修改方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本领域的技术人员更好的理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。根据本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
在详述本发明各实施例之前,先介绍以下技术术语:
模板数据库:用作模板的数据库。该模板数据库只包含数据库结构,不包含实际数据。需要说明的是,模板数据库可以包括多个,每个模板数据库可以生成一个或者多个数据库。
存储过程:一组为了完成预定功能的SQL(Structured Query Language,结构化查询语言)集合,该集合中的SQL经过编译后存储到数据库中的过程。
跨库调用:在一个数据库中引用另外一个数据库的对象(如,表等)。
InitData:存储过程的名称。
根据本发明的实施例,提供了一种用于数据库名称的修改装置,该用于数据库名称的修改装置用于对存储过程中被跨库调用的数据库的名称进行一次性自动修改。
图1是根据本发明实施例的用于数据库名称的修改装置的示意图。
如图1所示,该装置包括:第一获取单元10、执行单元20和修改单元30。
第一获取单元10用于获取第一数据库,第一数据库为根据第一模板数据库生成的数据库,第一模板数据库为第一预设数据库。由于第一数据库是根据第一模板数据库生成的数据库,因此第一数据库与第一模板数据库具有相同的数据库结构。
具体地,可以先获取第一数据库的地址,再根据第一数据库的地址获取第一数据库。第一数据库具有第一数据库名称,第一数据库名称可以根据预设规则生成。例如,第一数据库名称可以包括前缀和后缀两部分:第一数据库名称的前缀部分可以是第一模板数据库的名称;第一数据库名称的后缀部分可以是该第一数据库所服务对象的编码,其中,前缀和后缀之间可以通过预设符号进行连接,例如,第一数据库名称可以为“前缀_后缀”。
执行单元20用于执行第一数据库的存储过程。需要说明的是,存储过程可以在第一模板数据库中创建得到,并且新创建的存储过程可以命名为InitData,InitData中可以包含跨库调用其他数据库中的对象逻辑,例如,InitData可以调用第二数据库中的表逻辑。也即,存储过程为调用第二数据库中的对象逻辑(如,表逻辑)的过程。与第一数据库类似,第二数据库为根据第二模板数据库生成的数据库,第二模板数据库为第二预设数据库。需要说明的是,第二模板数据库与第一模板数据库可以为不同的模板数据库。
以第二模板数据库与第一模板数据库不同为例,第一模板数据库为DW,第二模板数据库为Receiver,通过第一模板数据库DW可以为用户生成新的数据库,如,生成第一数据库DW_001,通过第二模板数据库Receiver也可以为用户生成新的数据库,如,生成第二数据库Receiver_001。
修改单元30用于将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。
在执行第一数据库的存储过程时,可以判断第一数据库中的存储过程是否存在跨库调用其他数据库中的对象逻辑的情况,例如,可以判断第一数据库中的存储过程是否存在调用第二数据库中的对象逻辑的情况。如果判断出第一数据库中的存储过程存在跨库调用其他数据库中的对象逻辑的情况,则确定前述对象逻辑所在的数据库,并进一步确定前述对象逻辑所在的数据库的名称,以及确定生成前述对象逻辑所在的数据库所对应的模板数据库的名称,并将该存储过程中的所有的模板数据库的名称修改为与该模板数据库相对应的数据库的名称,其中,与该模板数据库相对应的数据库即为根据该模板数据库生成的数据库。如果判断出第一数据库中的存储过程不存在跨库调用对象逻辑的情况,则不做任何处理。
例如,第一模板数据库为DW,根据DW可以生成第一数据库DW_001,第二模板数据库为Receiver,根据Receiver可以生成第二数据库Receiver_001,DW_001的存储过程为InitData1,在InitData1中调用Receiver_001中的表逻辑,同时,Receiver_001的存储过程为InitData2,在InitData2中调用DW_001中的表逻辑。这样,在运行DW_001的存储过程InitData1后,InitData1中所有的Receiver(第二模板数据库的名称)会全部被修改为Receiver_001(第二数据库的名称);同理,在运行Receiver_001的存储过程InitData2后,InitData2中所有的DW(第一模板数据库的名称)会全部被修改为DW_001(第一数据库的名称)。
通过本发明实施例,采用获取第一数据库,第一数据库为根据第一模板数据库生成的数据库,第一模板数据库为第一预设数据库;执行第一数据库的存储过程,存储过程为调用第二数据库中的表逻辑的过程,第二数据库为根据第二模板数据库生成的数据库,第二模板数据库为第二预设数据库;以及将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称,由于在执行数据库的存储过程时,可以将存储过程所调用的对象逻辑所在的模板数据库的名称修改为根据该模板数据库所生成的数据库的名称,因此实现了自动更新存储过程中的数据库名称(模板数据库的名称)为正确的数据库名称(根据模板数据库所生成的数据库的名称)。
也即,执行第一数据库的存储过程,在该存储过程中将第二模板数据库名称Receiver更新为第二数据库名称Receiver_001,达到了通过一次执行即可实现修改所有需要修改的数据库名称的效果,并且提高了工作效率,降低了出错风险。
图2是根据本发明实施例的优选的用于数据库名称的修改装置的示意图。
如图2所示,该实施例可以作为图1所示实施例的优选实施方式,该实施例的用于数据库名称的修改装置包括第一实施例的第一获取单元10、执行单元20和修改单元30,其中,修改单元30包括第一获取模块302、第二获取模块304、执行模块306和修改模块308。
第一获取单元10、执行单元20的作用与第一实施例中的相同,在此不再赘述。
第一获取模块302用于获取第二模板数据库的名称。具体地,可以先获取第一数据库所调用的对象逻辑,再获取对象逻辑与该对象逻辑所在的模板数据库(如,第二模板数据库)的对应关系,并根据前述的对象逻辑和对应关系查找模板数据库,从而确定第二模板数据库的名称。
需要说明的是,第二模板数据库的名称可以预先设定,并存储在数据库列表中。对象逻辑与对象逻辑所在的模板数据库的对应关系也可以也先设定,并且也存储在数据库列表中。存储模板数据库的名称的数据库列表与存储对象逻辑与对象逻辑所在的模板数据库的对应关系的数据库列表可以为不同的数据库列表。
第二获取模块304用于获取第二数据库的名称。具体地,可以先获取第一数据库所调用的对象逻辑,再获取对象逻辑与该对象逻辑所在的模板数据库(如,第二模板数据库)的对应关系,并根据前述的对象逻辑和对应关系查找模板数据库,从而确定第二模板数据库,并进一步根据第二模板数据库与第二数据库之间的生成与被生成的对应关系确定第二数据库以及第二数据库的名称。
执行模块306用于执行数据库名称修改语句,数据库名称修改语句用于将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。需要说明的是,在执行一次数据库名称修改语句之后,存储过程中所有的第二模板数据库的名称均会被修改为第二数据库的名称。
数据库名称修改语句可以包括一个或者多个,每个数据库名称修改语句中的修改对象和被修改对象不同,但是所有数据库名称修改语句的结构相同。
修改模块308用于将第二模板数据库的名称修改为第二数据库的名称。
例如,模板数据库有第一模板数据库DW和第二模板数据库Receiver,第一模板数据库DW中创建了存储过程InitData1,第一模板数据库DW中创建了存储过程InitData1,且DW的存储过程InitData1中调用了Receiver的表逻辑,具体地,DW可以通过Receiver..tableName语句来调用Receiver的表逻辑;同理,第二模板数据库Receiver中创建了存储过程InitData2,且Receiver的存储过程InitData2中调用了DW的表逻辑,具体地,Receiver可以通过DW..table Name语句来调用DW的表逻辑。这样,在DW的存储过程InitData1中可以访问Receiver的表逻辑数据。同理,在Receiver的存储过程InitData2中可以访问DW的表逻辑数据。
需要说明的是,可以在一个模板数据库中创建一个或者多个存储过程,同一模板数据库中的任一存储过程可以获取该模板数据库中其他存储过程的列表。例如,第一模板数据库DW中可以创建存储过程InitData11、InitData12、InitData13,对存储过程InitData11而言,InitData11可以获取DW中InitData12和/或InitData13的列表。
进一步,同一模板数据库中的每个存储过程可以通过数据库系统内置函数OBJECT_DEFINITION获取其他存储过程中的内容,并自动更新自身所调用的数据库的名称为正确的名称(如,将Receiver修改为Receiver_001)。例如,InitData11可以通过OBJECT_DEFINITION获取InitData12和/或InitData13的列表中的内容。
通过本发明实施例,采用执行数据库名称修改语句的方式,将存储过程中所有的第二模板数据库的名称全部修改为第二数据库的名称,达到了执行一次数据库名称修改语句即可实现修改所有需要修改的数据库名称的效果,不仅修改方式简单,而且工作效率高,出错风险低。
优选地,在本发明实施例中,第二数据库的名称中包含第二模板数据库的名称的信息,该修改装置还可以包括:第二获取单元、第三获取单元和第一生成单元。
第二获取单元,用于在获取第二模板数据库的名称之前,获取第二模板数据库的名称的信息。由于模板数据库的名称可以预先设定,并且可以预先存储在存储器中,因此,可以通过访问存储器的方式查找并获取第二模板数据库的名称的相关信息。
第三获取单元,用于获取第二数据库的编码。第二数据库的编码即为第二数据库所对应的用户的编码,该编码可以随机生成,并且可以中增长。
第一生成单元,用于根据获取的第二模板数据库的名称的信息和获取的第二数据库的编码生成第二模板数据库的名称。
需要说明的是,在根据模板数据库为用户生成新的数据库时,可以按照预设规则生成新的数据库的名称。例如,在根据第一模板数据库DW为用户001生成第一数据库时,可以按照“第一模板数据库的名称_用户编码”的格式生成第一数据库的名称“DW_001”,其中,DW为第一模板数据库的名称,001为用户编码,用户编码可以随机生成,并且可以自动增加。
通过本发明实施例,由于第二数据库的名称包含第二模板数据库的名称的信息,因此,通过第二数据库的名称可以获知第二数据库的模板数据库,并且获取方法直接、快捷。
优选地,在本发明实施例中,该修改装置还可以包括:第四获取单元和第二生成单元。第四获取单元用于在获取第一数据库之前,获取第一模板数据库。第二生成单元用于根据获取的第一模板数据库生成第一数据库。
具体地。可以查找模板数据库存储器,从模板数据库存储器中获取第一模板数据库,并根据第一模板数据库生成第一数据库。需要说明的是,可以生成一个或者多个第一数据库,所有的第一数据库具有相同的数据结构,并且所有的第一数据库的数据结构均与第一模板数据库相同。每个第一数据库数据具有唯一的数据库名称,并且不同的第一数据库的名称不同。
通过本发明实施例,由于创建数据库需要耗费大量的时间、人力、物力和财力,因此采用模板数据库来生成数据库也即通过模板数据库来“复制”数据库,不仅可以节省时间、人力、物力和财力,而且可以提高创建数据库的效率。
优选地,在本发明实施例中,该修改装置还可以包括:第五获取单元、第六获取单元和判断单元。第五获取单元用于在将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称之前,获取第一数据库的名称,第一数据库的名称中包含第一后缀。第六获取单元用于获取第二数据库的名称,第二数据库的名称中包含第二后缀。判断单元用于判断第一后缀与第二后缀是否一致。其中,修改单元还用于在判断出第一后缀与第二后缀一致时,将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。
例如,第一数据库的名称可以DW_001,第二数据库的名称可以为Receiver_001,且第二数据库的第二模板数据库的名称为Receiver,由于DW_001的后缀为“001”且Receiver_001的后缀也为“001”,因此DW_001和Receiver_001的后缀一致,这样,在DW_001的存储过程中可以将所有的Receiver修改为Receiver_001。
再如,第一数据库的名称可以DW_001,第二数据库的名称可以为Receiver_002,且第二数据库的第二模板数据库的名称为Receiver,由于DW_001的后缀为“001”且Receiver_001的后缀也为“002”,因此DW_001和Receiver_001的后缀不一致,这样,在DW_001的存储过程中无法将所有的Receiver修改为Receiver_002。
通过本发明实施例,可以选择性的对存储过程中的数据库名称进行修改,而不是盲目的修改。
根据本发明的实施例,提供了一种用于数据库名称的修改方法,该用于数据库名称的修改方法用于对存储过程中被跨库调用的数据库的名称进行一次性自动修改。该用于数据库名称的修改方法可以运行在计算机处理设备上。需要说明的是,本发明实施例所提供的用于数据库名称的修改方法可以通过本发明实施例的用于数据库名称的修改装置来执行,本发明实施例的用于数据库名称的修改装置也可以用于执行本发明实施例的用于数据库名称的修改方法。
图3是根据本发明实施例的用于数据库名称的修改方法的流程图。如图3所示,该方法包括如下的步骤S302至步骤S306:
步骤S302,获取第一数据库。
第一数据库为根据第一模板数据库生成的数据库,第一模板数据库为第一预设数据库。由于第一数据库是根据第一模板数据库生成的数据库,因此第一数据库与第一模板数据库具有相同的数据库结构。
具体地,可以先获取第一数据库的地址,再根据第一数据库的地址获取第一数据库。第一数据库具有第一数据库名称,第一数据库名称可以根据预设规则生成。例如,第一数据库名称可以包括前缀和后缀两部分:第一数据库名称的前缀部分可以是第一模板数据库的名称;第一数据库名称的后缀部分可以是该第一数据库所服务对象的编码,其中,前缀和后缀之间可以通过预设符号进行连接,例如,第一数据库名称可以为“前缀_后缀”。
步骤S304,执行第一数据库的存储过程。
需要说明的是,存储过程可以在第一模板数据库中创建得到,并且新创建的存储过程可以命名为InitData,InitData中可以包含跨库调用其他数据库中的对象逻辑,例如,InitData可以调用第二数据库中的表逻辑。也即,存储过程为调用第二数据库中的对象逻辑(如,表逻辑)的过程。与第一数据库类似,第二数据库为根据第二模板数据库生成的数据库,第二模板数据库为第二预设数据库。需要说明的是,第二模板数据库与第一模板数据库可以为不同的模板数据库。
以第二模板数据库与第一模板数据库不同为例,第一模板数据库为DW,第二模板数据库为Receiver,通过第一模板数据库DW可以为用户生成新的数据库,如,生成第一数据库DW_001,通过第二模板数据库Receiver也可以为用户生成新的数据库,如,生成第二数据库Receiver_001。
步骤S306,将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。
在执行第一数据库的存储过程时,可以判断第一数据库中的存储过程是否存在跨库调用其他数据库中的对象逻辑的情况,例如,可以判断第一数据库中的存储过程是否存在调用第二数据库中的对象逻辑的情况。如果判断出第一数据库中的存储过程存在跨库调用其他数据库中的对象逻辑的情况,则确定前述对象逻辑所在的数据库,并进一步确定前述对象逻辑所在的数据库的名称,以及确定生成前述对象逻辑所在的数据库所对应的模板数据库的名称,并将该存储过程中的所有的模板数据库的名称修改为与该模板数据库相对应的数据库的名称,其中,与该模板数据库相对应的数据库即为根据该模板数据库生成的数据库。如果判断出第一数据库中的存储过程不存在跨库调用对象逻辑的情况,则不做任何处理。
例如,第一模板数据库为DW,根据DW可以生成第一数据库DW_001,第二模板数据库为Receiver,根据Receiver可以生成第二数据库Receiver_001,DW_001的存储过程为InitData1,在InitData1中调用Receiver_001中的表逻辑,同时,Receiver_001的存储过程为InitData2,在InitData2中调用DW_001中的表逻辑。这样,在运行DW_001的存储过程InitData1后,InitData1中所有的Receiver(第二模板数据库的名称)会全部被修改为Receiver_001(第二数据库的名称);同理,在运行Receiver_001的存储过程InitData2后,InitData2中所有的DW(第一模板数据库的名称)会全部被修改为DW_001(第一数据库的名称)。
通过本发明实施例,采用获取第一数据库,第一数据库为根据第一模板数据库生成的数据库,第一模板数据库为第一预设数据库;执行第一数据库的存储过程,存储过程为调用第二数据库中的表逻辑的过程,第二数据库为根据第二模板数据库生成的数据库,第二模板数据库为第二预设数据库;以及将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称,由于在执行数据库的存储过程时,可以将存储过程所调用的对象逻辑所在的模板数据库的名称修改为根据该模板数据库所生成的数据库的名称,因此实现了自动更新存储过程中的数据库名称(模板数据库的名称)为正确的数据库名称(根据模板数据库所生成的数据库的名称)。
也即,执行第一数据库的存储过程,在该存储过程中将第二模板数据库名称Receiver更新为第二数据库名称Receiver_001,达到了通过一次执行即可实现修改所有需要修改的数据库名称的效果,并且提高了工作效率,降低了出错风险。
图4是根据本发明实施例的优选的用于数据库名称的修改方法的流程图。
如图4所示,该用于数据库名称的修改方法包括如下的步骤S402至步骤S412,该实施例可以作为图3所示实施例的优选实施方式。
步骤S402和步骤S404,同图3所示实施例的步骤S302和步骤S304,在此不再赘述。
步骤S406,获取第二模板数据库的名称。
具体地,可以先获取第一数据库所调用的对象逻辑,再获取对象逻辑与该对象逻辑所在的模板数据库(如,第二模板数据库)的对应关系,并根据前述的对象逻辑和对应关系查找模板数据库,从而确定第二模板数据库的名称。
需要说明的是,第二模板数据库的名称可以预先设定,并存储在数据库列表中。对象逻辑与对象逻辑所在的模板数据库的对应关系也可以也先设定,并且也存储在数据库列表中。存储模板数据库的名称的数据库列表与存储对象逻辑与对象逻辑所在的模板数据库的对应关系的数据库列表可以为不同的数据库列表。
步骤S408,获取第二数据库的名称。
具体地,可以先获取第一数据库所调用的对象逻辑,再获取对象逻辑与该对象逻辑所在的模板数据库(如,第二模板数据库)的对应关系,并根据前述的对象逻辑和对应关系查找模板数据库,从而确定第二模板数据库,并进一步根据第二模板数据库与第二数据库之间的生成与被生成的对应关系确定第二数据库以及第二数据库的名称。
步骤S410,执行数据库名称修改语句。
数据库名称修改语句用于将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。需要说明的是,在执行一次数据库名称修改语句之后,存储过程中所有的第二模板数据库的名称均会被修改为第二数据库的名称。
数据库名称修改语句可以包括一个或者多个,每个数据库名称修改语句中的修改对象和被修改对象不同,但是所有数据库名称修改语句的结构相同。
步骤S412,将第二模板数据库的名称修改为第二数据库的名称。
例如,模板数据库有第一模板数据库DW和第二模板数据库Receiver,第一模板数据库DW中创建了存储过程InitData1,第一模板数据库DW中创建了存储过程InitData1,且DW的存储过程InitData1中调用了Receiver的表逻辑,具体地,DW可以通过Receiver..tableName语句来调用Receiver的表逻辑;同理,第二模板数据库Receiver中创建了存储过程InitData2,且Receiver的存储过程InitData2中调用了DW的表逻辑,具体地,Receiver可以通过DW..table Name语句来调用DW的表逻辑。这样,在DW的存储过程InitData1中可以访问Receiver的表逻辑数据。同理,在Receiver的存储过程InitData2中可以访问DW的表逻辑数据。
需要说明的是,可以在一个模板数据库中创建一个或者多个存储过程,同一模板数据库中的任一存储过程可以获取该模板数据库中其他存储过程的列表。例如,第一模板数据库DW中可以创建存储过程InitData11、InitData12、InitData13,对存储过程InitData11而言,InitData11可以获取DW中InitData12和/或InitData13的列表。
进一步,同一模板数据库中的每个存储过程可以通过数据库系统内置函数OBJECT_DEFINITION获取其他存储过程中的内容,并自动更新自身所调用的数据库的名称为正确的名称(如,将Receiver修改为Receiver_001)。例如,InitData11可以通过OBJECT_DEFINITION获取InitData12和/或InitData13的列表中的内容。
通过本发明实施例,采用执行数据库名称修改语句的方式,将存储过程中所有的第二模板数据库的名称全部修改为第二数据库的名称,达到了执行一次数据库名称修改语句即可实现修改所有需要修改的数据库名称的效果,不仅修改方式简单,而且工作效率高,出错风险低。
优选地,在本发明实施例中,第二数据库的名称中包含第二模板数据库的名称的信息,在获取第二模板数据库的名称之前,该修改方法还可以包括:
S2,获取第二模板数据库的名称的信息。由于模板数据库的名称可以预先设定,并且可以预先存储在存储器中,因此,可以通过访问存储器的方式查找并获取第二模板数据库的名称的相关信息。
S4,获取第二数据库的编码。第二数据库的编码即为第二数据库所对应的用户的编码,该编码可以随机生成,并且可以中增长。
S6,根据获取的第二模板数据库的名称的信息和获取的第二数据库的编码生成第二数据库的名称。
需要说明的是,在根据模板数据库为用户生成新的数据库时,可以按照预设规则生成新的数据库的名称。例如,在根据第一模板数据库DW为用户001生成第一数据库时,可以按照“第一模板数据库的名称_用户编码”的格式生成第一数据库的名称“DW_001”,其中,DW为第一模板数据库的名称,001为用户编码,用户编码可以随机生成,并且可以自动增加。
通过本发明实施例,由于第二数据库的名称包含第二模板数据库的名称的信息,因此,通过第二数据库的名称可以获知第二数据库的模板数据库,并且获取方法直接、快捷。
优选地,在本发明实施例中,在获取第一数据库之前,该修改方法还可以包括:
S8,获取第一模板数据库。
S10,根据获取的第一模板数据库生成第一数据库。
具体地。可以查找模板数据库存储器,从模板数据库存储器中获取第一模板数据库,并根据第一模板数据库生成第一数据库。需要说明的是,可以生成一个或者多个第一数据库,所有的第一数据库具有相同的数据结构,并且所有的第一数据库的数据结构均与第一模板数据库相同。每个第一数据库数据具有唯一的数据库名称,并且不同的第一数据库的名称不同。
通过本发明实施例,由于创建数据库需要耗费大量的时间、人力、物力和财力,因此采用模板数据库来生成数据库也即通过模板数据库来“复制”数据库,不仅可以节省时间、人力、物力和财力,而且可以提高创建数据库的效率。
优选地,在本发明实施例中,在将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称之前,该修改方法还可以包括:
S12,获取第一数据库的名称,第一数据库的名称中包含第一后缀。
S14,获取第二数据库的名称,第二数据库的名称中包含第二后缀。
S16,判断第一后缀与第二后缀是否一致。
其中,如果判断出第一后缀与第二后缀一致,则将第一数据库的存储过程中的第二模板数据库的名称修改为第二数据库的名称。
例如,第一数据库的名称可以DW_001,第二数据库的名称可以为Receiver_001,且第二数据库的第二模板数据库的名称为Receiver,由于DW_001的后缀为“001”且Receiver_001的后缀也为“001”,因此DW_001和Receiver_001的后缀一致,这样,在DW_001的存储过程中可以将所有的Receiver修改为Receiver_001。
再如,第一数据库的名称可以DW_001,第二数据库的名称可以为Receiver_002,且第二数据库的第二模板数据库的名称为Receiver,由于DW_001的后缀为“001”且Receiver_001的后缀也为“002”,因此DW_001和Receiver_001的后缀不一致,这样,在DW_001的存储过程中无法将所有的Receiver修改为Receiver_002。
通过本发明实施例,可以选择性的对存储过程中的数据库名称进行修改,而不是盲目的修改。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于数据库名称的修改方法,其特征在于,包括:
获取第一数据库,所述第一数据库为根据第一模板数据库生成的数据库,所述第一模板数据库为第一预设数据库;
执行所述第一数据库的存储过程,所述存储过程为调用第二数据库中的对象的过程,所述第二数据库为根据第二模板数据库生成的数据库,所述第二模板数据库为第二预设数据库;以及
将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
2.根据权利要求1所述的用于数据库名称的修改方法,其特征在于,将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称包括:
获取所述第二模板数据库的名称;
获取所述第二数据库的名称;
执行数据库名称修改语句,所述数据库名称修改语句用于将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称;以及
将所述第二模板数据库的名称修改为所述第二数据库的名称。
3.根据权利要求2所述的用于数据库名称的修改方法,其特征在于,所述第二数据库的名称中包含所述第二模板数据库的名称的信息,在获取所述第二模板数据库的名称之前,所述修改方法还包括:
获取所述第二模板数据库的名称的信息;
获取所述第二数据库的编码;以及
根据获取的所述第二模板数据库的名称的信息和获取的所述第二数据库的编码生成所述第二数据库的名称。
4.根据权利要求1所述的用于数据库名称的修改方法,其特征在于,在获取第一数据库之前,所述修改方法还包括:
获取所述第一模板数据库;
根据获取的所述第一模板数据库生成所述第一数据库。
5.根据权利要求1所述的用于数据库名称的修改方法,其特征在于,在将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称之前,所述修改方法还包括:
获取所述第一数据库的名称,所述第一数据库的名称中包含第一后缀;
获取所述第二数据库的名称,所述第二数据库的名称中包含第二后缀;以及
判断所述第一后缀与所述第二后缀是否一致,
其中,如果判断出所述第一后缀与所述第二后缀一致,则将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
6.一种用于数据库名称的修改装置,其特征在于,包括:
第一获取单元,用于获取第一数据库,所述第一数据库为根据第一模板数据库生成的数据库,所述第一模板数据库为第一预设数据库;
执行单元,用于执行所述第一数据库的存储过程,所述存储过程为调用第二数据库中的对象的过程,所述第二数据库为根据第二模板数据库生成的数据库,所述第二模板数据库为第二预设数据库;以及
修改单元,用于将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
7.根据权利要求6所述的用于数据库名称的修改装置,其特征在于,所述修改单元包括:
第一获取模块,用于获取所述第二模板数据库的名称;
第二获取模块,用于获取所述第二数据库的名称;
执行模块,用于执行数据库名称修改语句,所述数据库名称修改语句用于将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称;以及
修改模块,用于将所述第二模板数据库的名称修改为所述第二数据库的名称。
8.根据权利要求7所述的用于数据库名称的修改装置,其特征在于,所述第二数据库的名称中包含所述第二模板数据库的名称的信息,所述修改装置还包括:
第二获取单元,用于在获取所述第二模板数据库的名称之前,获取所述第二模板数据库的名称的信息;
第三获取单元,用于获取所述第二数据库的编码;以及
第一生成单元,用于根据获取的所述第二模板数据库的名称的信息和获取的所述第二数据库的编码生成所述第二数据库的名称。
9.根据权利要求6所述的用于数据库名称的修改装置,其特征在于,所述修改装置还包括:
第四获取单元,用于在获取第一数据库之前,获取所述第一模板数据库;以及
第二生成单元,用于根据获取的所述第一模板数据库生成所述第一数据库。
10.根据权利要求6所述的用于数据库名称的修改装置,其特征在于,所述修改装置还包括:
第五获取单元,用于在将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称之前,获取所述第一数据库的名称,所述第一数据库的名称中包含第一后缀;
第六获取单元,用于获取所述第二数据库的名称,所述第二数据库的名称中包含第二后缀;以及
判断单元,用于判断所述第一后缀与所述第二后缀是否一致,
其中,所述修改单元还用于在判断出所述第一后缀与所述第二后缀一致时,将所述第一数据库的存储过程中的所述第二模板数据库的名称修改为所述第二数据库的名称。
CN201410449648.7A 2014-09-04 2014-09-04 用于数据库名称的修改方法和装置 Active CN104166737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410449648.7A CN104166737B (zh) 2014-09-04 2014-09-04 用于数据库名称的修改方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410449648.7A CN104166737B (zh) 2014-09-04 2014-09-04 用于数据库名称的修改方法和装置

Publications (2)

Publication Number Publication Date
CN104166737A true CN104166737A (zh) 2014-11-26
CN104166737B CN104166737B (zh) 2018-02-02

Family

ID=51910550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410449648.7A Active CN104166737B (zh) 2014-09-04 2014-09-04 用于数据库名称的修改方法和装置

Country Status (1)

Country Link
CN (1) CN104166737B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339384A (zh) * 2015-07-07 2017-01-18 小米科技有限责任公司 存储过程的转换方法及装置
CN108304430A (zh) * 2017-06-02 2018-07-20 深圳三诺信息科技有限公司 一种修改数据库的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187552A1 (en) * 2008-01-17 2009-07-23 International Business Machine Corporation System and Methods for Generating Data Analysis Queries from Modeling Constructs
CN102193922A (zh) * 2010-03-04 2011-09-21 杭州华三通信技术有限公司 一种对数据库进行访问的方法和装置
CN102663103A (zh) * 2012-04-13 2012-09-12 北京工业大学 可配置的自动化生成数据库和数据访问的方法
CN103136445A (zh) * 2013-01-29 2013-06-05 浙江大学 一种openEHR信息到关系数据库的转换方法
CN103473108A (zh) * 2013-08-12 2013-12-25 福建富士通信息软件有限公司 一种Java代码生成方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187552A1 (en) * 2008-01-17 2009-07-23 International Business Machine Corporation System and Methods for Generating Data Analysis Queries from Modeling Constructs
CN102193922A (zh) * 2010-03-04 2011-09-21 杭州华三通信技术有限公司 一种对数据库进行访问的方法和装置
CN102663103A (zh) * 2012-04-13 2012-09-12 北京工业大学 可配置的自动化生成数据库和数据访问的方法
CN103136445A (zh) * 2013-01-29 2013-06-05 浙江大学 一种openEHR信息到关系数据库的转换方法
CN103473108A (zh) * 2013-08-12 2013-12-25 福建富士通信息软件有限公司 一种Java代码生成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339384A (zh) * 2015-07-07 2017-01-18 小米科技有限责任公司 存储过程的转换方法及装置
CN108304430A (zh) * 2017-06-02 2018-07-20 深圳三诺信息科技有限公司 一种修改数据库的方法

Also Published As

Publication number Publication date
CN104166737B (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
CN107450972B (zh) 一种调度方法、装置以及电子设备
US8707275B2 (en) Simulation environment for distributed programs
US9223628B2 (en) Task scheduling based on dependencies and resources
CN108319656A (zh) 实现灰度发布的方法、装置及计算节点和系统
CN105677404A (zh) 一种基于Zookeeper的配置更新方法及装置
CN103984582A (zh) 一种热更新方法和装置
CN105808323A (zh) 一种虚拟机创建方法及系统
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN108415912B (zh) 基于MapReduce模型的数据处理方法和设备
US10747530B2 (en) Mission-based developer certification system and method
CN107391622B (zh) 一种数据访问方法及设备
US20200371902A1 (en) Systems and methods for software regression detection
CN104410511B (zh) 一种服务器管理方法及系统
CN111988429A (zh) 算法调度方法以及系统
CN110046100B (zh) 一种分组测试的方法、电子设备及介质
CN111475511A (zh) 基于树状结构的数据存储方法、访问方法、装置及设备
US10838698B2 (en) Providing a reuse capability for visual programming logic within a building tool
CN104166737A (zh) 用于数据库名称的修改方法和装置
CN107491700B (zh) 一种数据访问方法及设备
CN111163060B (zh) 一种基于应用组的转发方法、设备以及系统
CN104794179A (zh) 一种基于知识树的视频快速标引方法及装置
CN107025126B (zh) 一种资源调度方法、nfvo和系统
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
CN106843822A (zh) 一种执行代码生成方法及设备
CN106951236B (zh) 插件的开发方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Database name modifying method and device

Effective date of registration: 20190531

Granted publication date: 20180202

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20180202