數據表的數據插入方法和裝置制造方法
【專利摘要】本發明公開了一種數據表的數據插入方法和裝置。其中,數據表的數據插入方法包括:接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表;獲取數據表的外鍵信息;獲取外鍵信息對應的禁用指令;通過外鍵信息對應的禁用指令禁用數據表的外鍵約束;以及基于數據插入指令在執行禁用之后的數據表中插入數據。通過本發明,達到了減小數據插入時間的效果。
【專利說明】數據表的數據插入方法和裝置
【技術領域】
[0001]本發明涉及數據庫領域,具體而言,涉及一種數據表的數據插入方法和裝置。
【背景技術】
[0002]在數據庫表的設計中,為了實現表之間數據的完整性,可以為列添加主鍵約束和外鍵約束,主鍵約束用于限定該列內容不能重復,且不能為空,外鍵約束用于限定該列值必須在所關聯主鍵列的值中存在。通過主鍵約束和外鍵約束實現兩個數據表之間相關聯。當在帶有外鍵約束的數據表中插入數據時,由于數據表帶有外鍵約束,使得在執行數據插入操作時會去訪問外鍵所引用的表,從而導致數據插入時間過長,消耗中央處理器(CPU)和內存的資源。
[0003]針對現有技術中在帶有外鍵約束的數據表中數據插入時間過長的問題,目前尚未提出有效的解決方案。
【發明內容】
[0004]本發明的主要目的在于提供一種數據表的數據插入方法和裝置,以解決現有技術中在帶有外鍵約束的數據表中數據插入時間過長的問題。
[0005]為了實現上述目的,根據本發明的一個方面,提供了 一種數據表的數據插入方法。根據本發明的數據表的數據插入方法包括:接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表;獲取數據表的外鍵信息;獲取外鍵信息對應的禁用指令;通過外鍵信息對應的禁用指令禁用數據表的外鍵約束;以及基于數據插入指令在執行禁用之后的數據表中插入數據。
[0006]進一步地,獲取數據表的外鍵信息包括:獲取數據庫系統的系統表,系統表為包含有數據庫系統中外鍵信息的表;以及從系統表查找數據表的外鍵信息。
[0007]進一步地,獲取數據表的外鍵信息包括:獲取數據表的外鍵信息表,外鍵信息表包括多個外鍵信息,通過外鍵信息的禁用指令禁用數據表的外鍵約束包括:通過外鍵信息對應的禁用指令同時禁用外鍵信息表中所有外鍵信息的外鍵約束;或者通過外鍵信息對應的禁用指令依次禁用外鍵信息表中外鍵信息的外鍵約束。
[0008]進一步地,在基于數據插入指令在執行禁用之后的數據表中插入數據之后,數據插入方法還包括:獲取外鍵信息對應的啟用指令;以及通過外鍵信息對應的啟用指令啟用數據表的外鍵約束。
[0009]進一步地,通過外鍵信息對應的啟用指令啟用數據表的外鍵約束包括:通過外鍵信息對應的啟用指令同時啟用外鍵信息表中所有外鍵信息的外鍵約束;或者通過外鍵信息對應的啟用指令依次啟用外鍵信息表中外鍵信息的外鍵約束。
[0010]為了實現上述目的,根據本發明的另一方面,提供了一種數據表的數據插入裝置。根據本發明的數據表的數據插入裝置包括:接收單元,用于接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表;第一獲取單元,用于獲取數據表的外鍵信息;第二獲取單元,用于獲取外鍵信息對應的禁用指令;禁用單元,用于通過外鍵信息對應的禁用指令禁用數據表的外鍵約束;以及插入單元,用于基于數據插入指令在執行禁用之后的數據表中插入數據。
[0011]進一步地,第一獲取單元包括:第一獲取模塊,用于獲取數據庫系統的系統表,系統表為包含有數據庫系統中外鍵信息的表;以及查找模塊,用于從系統表查找數據表的外鍵信息。
[0012]進一步地,第一獲取單元包括:第二獲取模塊,用于獲取數據表的外鍵信息表,夕卜鍵信息表包括多個外鍵信息,禁用單元包括:禁用模塊,用于通過外鍵信息對應的禁用指令同時禁用外鍵信息表中所有外鍵信息的外鍵約束,或者用于通過外鍵信息對應的禁用指令依次禁用外鍵信息表中外鍵信息的外鍵約束。
[0013]進一步地,數據插入裝置還包括:第三獲取單元,用于在基于數據插入指令在執行禁用之后的數據表中插入數據之后,獲取外鍵信息對應的啟用指令;以及啟用單元,用于通過外鍵信息對應的啟用指令啟用數據表的外鍵約束。
[0014]進一步地,啟用單元包括:啟用模塊,用于通過外鍵信息對應的啟用指令同時啟用外鍵信息表中所有外鍵信息的外鍵約束,或者用于通過外鍵信息對應的啟用指令依次啟用外鍵信息表中外鍵信息的外鍵約束。
[0015]通過本發明,采用數據表的數據插入方法,通過在禁用帶有外鍵約束的數據表的外接約束之后,再向數據表中插入數據,從而不需要在插入數據時訪問外鍵索引用的表,而直接向數據表中插入數據,簡化了數據插入的過程,減小數據插入的時間,解決了現有技術中在帶有外鍵約束的數據表中數據插入時間過長的問題,進而達到了減小數據插入時間的效果。
【專利附圖】
【附圖說明】
[0016]構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0017]圖1是根據本發明第一實施例的數據表的數據插入裝置的結構示意圖;
[0018]圖2是根據本發明第二實施例的數據表的數據插入裝置的結構示意圖;
[0019]圖3是根據本發明第三實施例的數據表的數據插入裝置的結構示意圖;
[0020]圖4是根據本發明第一實施例的數據表的數據插入方法的流程圖;
[0021]圖5是根據本發明第二實施例的數據表的數據插入方法的流程圖;
[0022]圖6是根據本發明第三實施例的數據表的數據插入方法的流程圖;以及
[0023]圖7是根據本發明第四實施例的數據表的數據插入方法的流程圖。
【具體實施方式】
[0024]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本發明。
[0025]為了使本【技術領域】的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0026]需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0027]本發明實施例提供了 一種數據表的數據插入裝置,該裝置可以通過計算機設備實現其功能。
[0028]圖1是根據本發明第一實施例的數據表的數據插入裝置的結構示意圖。如圖1所示,該數據表的數據插入裝置包括:接收單元10、第一獲取單元20、第二獲取單元30、禁用單元40和插入單元50。
[0029]接收單元10用于接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表。
[0030]數據插入指令為向數據表中插入數據的指令,其中數據表可以是帶有外鍵約束的數據表,可以是數據庫中的任意一個帶有外鍵約束的表。接收數據插入指令,可以通過數據插入指令向數據表中插入數據。
[0031]第一獲取單元20用于獲取數據表的外鍵信息。
[0032]在接受數據插入指令之后,可以是從數據庫中獲取需要插入數據的數據表,再以該數據表作為基礎,獲取與該數據表對應的外鍵信息。外鍵信息對應有外鍵約束功能,其中外鍵約束用于限定對應的列值必須存在于所關聯的主鍵列中的值中,當數據表包含多個外鍵信息時,獲取數據表所有的外鍵信息,也即是獲取數據表對應的外鍵信息表。其中,外鍵信息可以是通過在數據庫系統提供的系統表中查找帶有外鍵約束的數據表所對應的外鍵信息表,系統表是數據庫系統公開的用于幫助查詢數據庫對象基礎數據的對象。通過查詢系統表獲取數據表對應的外鍵信息。
[0033]第二獲取單元30用于獲取外鍵信息對應的禁用指令。
[0034]禁用指令用于禁用外鍵約束,該禁用指令可以是用于禁用一個外鍵約束的指令,也可以是同時禁用所有外鍵約束的指令。外鍵信息對應的禁用指令用于禁用外鍵信息對應的數據表的外鍵約束,獲取該禁用指令以便于禁用數據表的外鍵約束。
[0035]禁用單元40用于通過外鍵信息對應的禁用指令禁用數據表的外鍵約束。
[0036]在獲取外鍵信息對應的禁用指令之后,可以通過外鍵信息對應的禁用指令禁用相應的數據表中的外鍵約束。當數據表只有一個外鍵時,可以獲取該外鍵的外鍵信息,采用禁用一個外鍵約束的指令禁用該外鍵的外鍵約束;當數據表有多個外鍵時,通過獲取數據表的外鍵信息表,可以采用禁用一個外鍵約束的指令逐一禁用外鍵信息表對應的外鍵約束,或者采用同時禁用所有外鍵約束的指令禁用外鍵信息表對應的所有外鍵約束。
[0037]插入單元50用于基于數據插入指令在執行禁用之后的數據表中插入數據。
[0038]在通過外鍵信息對應的禁用指令禁用數據表的外鍵約束之后,可以是基于接收到數據插入指令向帶有外鍵約束的數據表中插入數據。由于此時向帶有外鍵約束的數據表中插入數據,數據表的外鍵約束已經被禁用,因此,在向數據表中插入數據時,不需要訪問外鍵所引用的表,從而優化了數據插入過程,直接向數據表中插入數據。
[0039]根據本發明實施例,通過在禁用帶有外鍵約束的數據表的外接約束之后,再向數據表中插入數據,從而不需要在插入數據時訪問外鍵索引用的表,而直接向數據表中插入數據,簡化了數據插入的過程,減小數據插入的時間,解決了現有技術中在帶有外鍵約束的數據表中數據插入時間過長的問題,進而達到了減小數據插入時間的效果。
[0040]圖2是根據本發明第二實施例的數據表的數據插入裝置的結構示意圖。該實施例的數據表的數據插入裝置可以作為上述實施例的數據表的數據插入裝置的一種優選實施方式。如圖2所示,該數據表的數據插入裝置包括:接收單元10、第一獲取單元20、第二獲取單元30、禁用單元40和插入單元50,其中,第一獲取單元20包括:第一獲取模塊201和查找模塊202。第二獲取單元30、禁用單元40和插入單元50與圖1所示的第二獲取單元30、禁用單元40和插入單元50功能相同,這里不作贅述。
[0041]第一獲取模塊201用于獲取數據庫系統的系統表,系統表為包含有數據庫系統中外鍵信息的表。
[0042]系統表是數據庫系統公開的用于幫助查詢數據庫對象基礎數據的對象,從基礎數據中可以查找到數據庫中的所有外鍵信息。獲取數據庫系統的系統表,以便于從通過查詢相應的數據庫系統的系統表以獲取外鍵信息表。
[0043]查找模塊202用于從系統表查找數據表的外鍵信息。
[0044]從系統表查找到需要插入數據的數據表的外鍵信息,從而獲取該外鍵信息,并將該外鍵信息返回,以便于禁用數據表的外鍵約束。
[0045]圖3是根據本發明第三實施例的數據表的數據插入裝置的結構示意圖。該實施例的數據表的數據插入裝置可以作為上述實施例的數據表的數據插入裝置的一種優選實施方式。如圖3所示,該數據表的數據插入裝置包括:接收單元10、第一獲取單元20、第二獲取單元30、禁用單元40和插入單元50,其中,第一獲取單元20包括第二獲取模塊203,禁用單元40包括禁用模塊401。接收單元10、第二獲取單元30和插入單元50與圖1所示的接收單元10、第二獲取單元30和插入單元50功能相同,這里不作贅述
[0046]第二獲取模塊203用于獲取數據表的外鍵信息表,外鍵信息表包括多個外鍵信肩、O
[0047]數據庫表可以包含有多個外鍵,獲取數據表的外鍵信息表,可以是獲取數據表所有外鍵的信息列表,在獲取所有外鍵信息之后,通過禁用所有外鍵約束,從而達到減小數據插入時的內存占用和CPU的消耗。
[0048]禁用模塊401用于通過外鍵信息對應的禁用指令同時禁用外鍵信息表中所有外鍵信息的外鍵約束。
[0049]在獲取了外鍵信息對應的禁用指令之后,通過該禁用指令同時禁用外鍵信息表中所有的外鍵約束,從而達到對數據表的外鍵約束的禁用一步到位,避免逐一對外鍵約束進行禁用導致耗時過長的問題。
[0050]禁用模塊401還可以用于通過外鍵信息對應的禁用指令依次禁用外鍵信息表中外鍵信息的外鍵約束。
[0051]獲取外鍵信息對應的禁用指令之后,通過禁用指令對外鍵約束進行逐一禁用,從而避免遺漏一些外鍵,而導致外鍵約束的禁用不完全。
[0052]優選地,數據插入裝置還包括:第三獲取單元和啟用單元。
[0053]第三獲取單元用于在基于數據插入指令在執行禁用之后的數據表中插入數據之后,獲取外鍵信息對應的啟用指令。
[0054]在向數據表中插入數據之后,獲取外鍵信息對應的啟用指令,該啟用指令用于啟用外鍵信息對應的外鍵約束,獲取該啟用指令以便于在插入數據之后,重新啟用外鍵約束。
[0055]啟用單元用于通過外鍵信息對應的啟用指令啟用數據表的外鍵約束。
[0056]在獲取外鍵信息對應的啟用指令之后,通過該啟用指令啟用數據表的外鍵約束。啟用數據表的外鍵約束可以是同時啟用數據表的所有的外鍵約束,也可以是一次啟用數據表的每一個外鍵約束。
[0057]優選地,啟用單兀包括啟用t旲塊。
[0058]啟用模塊用于通過外鍵信息對應的啟用指令同時啟用外鍵信息表中所有外鍵信息的外鍵約束。
[0059]通過啟用指令啟用數據表所有的外鍵約束,使得數據表的外鍵約束啟用過程一步到位,從而進一步減小外鍵約束啟用過程的時間。
[0060]啟用模塊還可以用于通過外鍵信息對應的啟用指令依次啟用外鍵信息表中外鍵信息的外鍵約束。
[0061]依次啟用外鍵信息表中外鍵信息的外鍵約束與上述實施例中的一次禁用數據表的外鍵約束相對應。通過啟用指令,一次啟用數據表的每一個外鍵約束,從而能夠使得每一個禁用的外鍵約束能夠重新啟用,避免遺漏一些外鍵約束。
[0062]本發明實施例還提供了一種數據表的數據插入方法。該方法運行在計算機設備上。需要說明的是,本發明實施例的數據表的數據插入方法可以通過本發明實施例所提供的數據表的數據插入裝置來執行,本發明實施例的數據表的數據插入裝置也可以用于執行本發明實施例所提供的數據表的數據插入方法。
[0063]圖4是根據本發明第一實施例的數據表的數據插入方法的流程圖。如圖4所示,該數據表的數據插入方法包括步驟如下:
[0064]步驟S101,接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表。
[0065]數據插入指令為向數據表中插入數據的指令,其中數據表可以是帶有外鍵約束的數據表,可以是數據庫中的任意一個帶有外鍵約束的表。接收數據插入指令,可以通過數據插入指令向數據表中插入數據。
[0066]步驟S102,獲取數據表的外鍵信息。
[0067]在接受數據插入指令之后,可以是從數據庫中獲取需要插入數據的數據表,再以該數據表作為基礎,獲取與該數據表對應的外鍵信息。外鍵信息對應有外鍵約束功能,其中外鍵約束用于限定對應的列值必須存在于所關聯的主鍵列中的值中,當數據表包含多個外鍵信息時,獲取數據表所有的外鍵信息,也即是獲取數據表對應的外鍵信息表。其中,外鍵信息可以是通過在數據庫系統提供的系統表中查找帶有外鍵約束的數據表所對應的外鍵信息表,系統表是數據庫系統公開的用于幫助查詢數據庫對象基礎數據的對象。通過查詢系統表獲取數據表對應的外鍵信息。[0068]步驟S103,獲取外鍵信息對應的禁用指令。
[0069]禁用指令用于禁用外鍵約束,該禁用指令可以是用于禁用一個外鍵約束的指令,也可以是同時禁用所有外鍵約束的指令。外鍵信息對應的禁用指令用于禁用外鍵信息對應的數據表的外鍵約束,獲取該禁用指令以便于禁用數據表的外鍵約束。
[0070]步驟S104,通過外鍵信息對應的禁用指令禁用數據表的外鍵約束。
[0071]在獲取外鍵信息對應的禁用指令之后,可以通過外鍵信息對應的禁用指令禁用相應的數據表中的外鍵約束。當數據表只有一個外鍵時,可以獲取該外鍵的外鍵信息,采用禁用一個外鍵約束的指令禁用該外鍵的外鍵約束;當數據表有多個外鍵時,通過獲取數據表的外鍵信息表,可以采用禁用一個外鍵約束的指令逐一禁用外鍵信息表對應的外鍵約束,或者采用同時禁用所有外鍵約束的指令禁用外鍵信息表對應的所有外鍵約束。
[0072]步驟S105,基于數據插入指令在執行禁用之后的數據表中插入數據。
[0073]在通過外鍵信息對應的禁用指令禁用數據表的外鍵約束之后,可以是基于接收到數據插入指令向帶有外鍵約束的數據表中插入數據。由于此時向帶有外鍵約束的數據表中插入數據,數據表的外鍵約束已經被禁用,因此,在向數據表中插入數據時,不需要訪問外鍵所引用的表,從而優化了數據插入過程,直接向數據表中插入數據。
[0074]根據本發明實施例,通過在禁用帶有外鍵約束的數據表的外接約束之后,再向數據表中插入數據,從而不需要在插入數據時訪問外鍵索引用的表,而直接向數據表中插入數據,簡化了數據插入的過程,減小數據插入的時間,解決了現有技術中在帶有外鍵約束的數據表中數據插入時間過長的問題,進而達到了減小數據插入時間的效果。
[0075]圖5是根據本發明第二實施例的數據表的數據插入方法的流程圖。該實施例的數據表的數據插入方法可以是上述實施例的數據表的數據插入方法的一種優選實施方式。如圖5所示,該數據表的數據插入方法包括步驟如下:
[0076]步驟S201,接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表。
[0077]數據插入指令為向數據表中插入數據的指令,其中數據表可以是帶有外鍵約束的數據表,可以是數據庫中的任意一個帶有外鍵約束的表。接收數據插入指令,可以通過數據插入指令向數據表中插入數據。
[0078]步驟S202,獲取數據庫系統的系統表,系統表為包含有數據庫系統中外鍵信息的表。
[0079]系統表是數據庫系統公開的用于幫助查詢數據庫對象基礎數據的對象,從基礎數據中可以查找到數據庫中的所有外鍵信息。獲取數據庫系統的系統表,以便于從通過查詢相應的數據庫系統的系統表以獲取外鍵信息表。
[0080]步驟S203,從系統表查找數據表的外鍵信息。
[0081]從系統表查找到需要插入數據的數據表的外鍵信息,從而獲取該外鍵信息,并將該外鍵信息返回,以便于禁用數據表的外鍵約束。
[0082]步驟S204,獲取外鍵信息對應的禁用指令。
[0083]禁用指令用于禁用外鍵約束,該禁用指令可以是用于禁用一個外鍵約束的指令,也可以是同時禁用所有外鍵約束的指令。外鍵信息對應的禁用指令用于禁用外鍵信息對應的數據表的外鍵約束,獲取該禁用指令以便于禁用數據表的外鍵約束。[0084]步驟S205,通過外鍵信息對應的禁用指令禁用數據表的外鍵約束。
[0085]在獲取外鍵信息對應的禁用指令之后,可以通過外鍵信息對應的禁用指令禁用相應的數據表中的外鍵約束。當數據表只有一個外鍵時,可以獲取該外鍵的外鍵信息,采用禁用一個外鍵約束的指令禁用該外鍵的外鍵約束;當數據表有多個外鍵時,通過獲取數據表的外鍵信息表,可以采用禁用一個外鍵約束的指令逐一禁用外鍵信息表對應的外鍵約束,或者采用同時禁用所有外鍵約束的指令禁用外鍵信息表對應的所有外鍵約束。
[0086]步驟S206,基于數據插入指令在執行禁用之后的數據表中插入數據。
[0087]在通過外鍵信息對應的禁用指令禁用數據表的外鍵約束之后,可以是基于接收到數據插入指令向帶有外鍵約束的數據表中插入數據。由于此時向帶有外鍵約束的數據表中插入數據,數據表的外鍵約束已經被禁用,因此,在向數據表中插入數據時,不需要訪問外鍵所引用的表,從而優化了數據插入過程,直接向數據表中插入數據。
[0088]圖6是根據本發明第三實施例的數據表的數據插入方法的流程圖。該實施例的數據表的數據插入方法可以是上述實施例的數據表的數據插入方法的一種優選實施方式。如圖6所示,該數據表的數據插入方法包括步驟如下:
[0089]步驟S301,接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表。
[0090]數據插入指令為向數據表中插入數據的指令,其中數據表可以是帶有外鍵約束的數據表,可以是數據庫中的任意一個帶有外鍵約束的表。接收數據插入指令,可以通過數據插入指令向數據表中插入數據。
[0091]步驟S302,獲取數據表的外鍵信息表,外鍵信息表包括多個外鍵信息。
[0092]數據庫表可以包含有多個外鍵,獲取數據表的外鍵信息表,可以是獲取數據表所有外鍵的信息列表,在獲取所有外鍵信息之后,通過禁用所有外鍵約束,從而達到減小數據插入時的內存占用和CPU的消耗。
[0093]步驟S303,獲取外鍵信息對應的禁用指令。
[0094]禁用指令用于禁用外鍵約束,該禁用指令可以是用于禁用一個外鍵約束的指令,也可以是同時禁用所有外鍵約束的指令。外鍵信息對應的禁用指令用于禁用外鍵信息對應的數據表的外鍵約束,獲取該禁用指令以便于禁用數據表的外鍵約束。
[0095]步驟S304,通過外鍵信息對應的禁用指令依次禁用外鍵信息表中外鍵信息的外鍵約束。
[0096]獲取外鍵信息對應的禁用指令之后,通過禁用指令對外鍵約束進行逐一禁用,從而避免遺漏一些外鍵,而導致外鍵約束的禁用不完全。
[0097]可選地,步驟S304還可以是通過外鍵信息對應的禁用指令同時禁用外鍵信息表中所有外鍵信息的外鍵約束。
[0098]在獲取了外鍵信息對應的禁用指令之后,通過該禁用指令同時禁用外鍵信息表中所有的外鍵約束,從而達到對數據表的外鍵約束的禁用一步到位,避免逐一對外鍵約束進行禁用導致耗時過長的問題。
[0099]步驟S305,基于數據插入指令在執行禁用之后的數據表中插入數據。
[0100]在通過外鍵信息對應的禁用指令禁用數據表的外鍵約束之后,可以是基于接收到數據插入指令向帶有外鍵約束的數據表中插入數據。由于此時向帶有外鍵約束的數據表中插入數據,數據表的外鍵約束已經被禁用,因此,在向數據表中插入數據時,不需要訪問外鍵所引用的表,從而優化了數據插入過程,直接向數據表中插入數據。
[0101]圖7是根據本發明第四實施例的數據表的數據插入方法的流程圖。該實施例的數據表的數據插入方法可以是上述實施例的數據表的數據插入方法的一種優選實施方式。如圖7所示,該數據表的數據插入方法包括步驟如下:
[0102]步驟S401,接收數據插入指令,數據插入指令用于向數據表中插入數據,數據表為帶有外鍵約束的數據表。
[0103]數據插入指令為向數據表中插入數據的指令,其中數據表可以是帶有外鍵約束的數據表,可以是數據庫中的任意一個帶有外鍵約束的表。接收數據插入指令,可以通過數據插入指令向數據表中插入數據。
[0104]步驟S402,獲取數據表的外鍵信息。
[0105]在接受數據插入指令之后,可以是從數據庫中獲取需要插入數據的數據表,再以該數據表作為基礎,獲取與該數據表對應的外鍵信息。外鍵信息對應有外鍵約束功能,其中外鍵約束用于限定對應的列值必須存在于所關聯的主鍵列中的值中,當數據表包含多個外鍵信息時,獲取數據表所有的外鍵信息,也即是獲取數據表對應的外鍵信息表。其中,外鍵信息可以是通過在數據庫系統提供的系統表中查找帶有外鍵約束的數據表所對應的外鍵信息表,系統表是數據庫系統公開的用于幫助查詢數據庫對象基礎數據的對象。通過查詢系統表獲取數據表對應的外鍵信息。
[0106]步驟S403,獲取外鍵信息對應的禁用指令。
[0107]禁用指令用于禁用外鍵約束,該禁用指令可以是用于禁用一個外鍵約束的指令,也可以是同時禁用所有外鍵約束的指令。外鍵信息對應的禁用指令用于禁用外鍵信息對應的數據表的外鍵約束,獲取該禁用指令以便于禁用數據表的外鍵約束。
[0108]步驟S404,通過外鍵信息對應的禁用指令禁用數據表的外鍵約束。
[0109]在獲取外鍵信息對應的禁用指令之后,可以通過外鍵信息對應的禁用指令禁用相應的數據表中的外鍵約束。當數據表只有一個外鍵時,可以獲取該外鍵的外鍵信息,采用禁用一個外鍵約束的指令禁用該外鍵的外鍵約束;當數據表有多個外鍵時,通過獲取數據表的外鍵信息表,可以采用禁用一個外鍵約束的指令逐一禁用外鍵信息表對應的外鍵約束,或者采用同時禁用所有外鍵約束的指令禁用外鍵信息表對應的所有外鍵約束。
[0110]步驟S405,基于數據插入指令在執行禁用之后的數據表中插入數據。
[0111]在通過外鍵信息對應的禁用指令禁用數據表的外鍵約束之后,可以是基于接收到數據插入指令向帶有外鍵約束的數據表中插入數據。由于此時向帶有外鍵約束的數據表中插入數據,數據表的外鍵約束已經被禁用,因此,在向數據表中插入數據時,不需要訪問外鍵所引用的表,從而優化了數據插入過程,直接向數據表中插入數據。
[0112]步驟S406,獲取外鍵信息對應的啟用指令。
[0113]在向數據表中插入數據之后,獲取外鍵信息對應的啟用指令,該啟用指令用于啟用外鍵信息對應的外鍵約束,獲取該啟用指令以便于在插入數據之后,重新啟用外鍵約束。
[0114]步驟S407,通過外鍵信息對應的啟用指令啟用數據表的外鍵約束。
[0115]在獲取外鍵信息對應的啟用指令之后,通過該啟用指令啟用數據表的外鍵約束。啟用數據表的外鍵約束可以是同時啟用數據表的所有的外鍵約束,也可以是一次啟用數據表的每一個外鍵約束。
[0116]通過本發明實施例,在向數據表插入數據之后,再啟用數據表的外鍵約束,從而使得數據表既可以是使用外鍵約束功能,有不影響數據插入的性能。
[0117]優選地,步驟S407可以是通過外鍵信息對應的啟用指令依次啟用外鍵信息表中外鍵信息的外鍵約束。
[0118]依次啟用外鍵信息表中外鍵信息的外鍵約束與上述實施例中的一次禁用數據表的外鍵約束相對應。通過啟用指令,一次啟用數據表的每一個外鍵約束,從而能夠使得每一個禁用的外鍵約束能夠重新啟用,避免遺漏一些外鍵約束。
[0119]可選地,步驟S407還可以是通過外鍵信息對應的啟用指令同時啟用外鍵信息表中所有外鍵信息的外鍵約束。
[0120]通過啟用指令啟用數據表所有的外鍵約束,使得數據表的外鍵約束啟用過程一步到位,從而進一步減小外鍵約束啟用過程的時間。
[0121]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
[0122]顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。
[0123]以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種數據表的數據插入方法,其特征在于,包括: 接收數據插入指令,所述數據插入指令用于向數據表中插入數據,所述數據表為帶有外鍵約束的數據表; 獲取所述數據表的外鍵信息; 獲取所述外鍵信息對應的禁用指令; 通過所述外鍵信息對應的禁用指令禁用所述數據表的外鍵約束;以及 基于所述數據插入指令在執行禁用之后的所述數據表中插入數據。
2.根據權利要求1所述的數據表的數據插入方法,其特征在于,獲取所述數據表的外鍵信息包括: 獲取數據庫系統的系統表,所述系統表為包含有所述數據庫系統中所述外鍵信息的表;以及 從所述系統表查找所述數據表的外鍵信息。
3.根據權利要求1所述的數據表的數據插入方法,其特征在于, 獲取所述數據表的外鍵信息包括:獲取所述數據表的外鍵信息表,所述外鍵信息表包括多個外鍵信息, 通過所述外鍵信息的禁用指令禁用所述數據表的外鍵約束包括:通過所述外鍵信息對應的禁用指令同時禁用所述外鍵信息表中所有外鍵信息的外鍵約束;或者通過所述外鍵信息對應的禁用指令依次禁用所述外鍵信息表中外鍵信息的外鍵約束。
4.根據權利要求3所述的數據表的數據插入方法,其特征在于,在基于所述數據插入指令在執行禁用之后的所述數據表中插入數據之后,所述數據插入方法還包括: 獲取所述外鍵信息對應的啟用指令;以及 通過所述外鍵信息對應的啟用指令啟用所述數據表的外鍵約束。
5.根據權利要求4所述的數據表的數據插入方法,其特征在于,通過所述外鍵信息對應的啟用指令啟用所述數據表的外鍵約束包括: 通過所述外鍵信息對應的啟用指令同時啟用所述外鍵信息表中所有外鍵信息的外鍵約束;或者 通過所述外鍵信息對應的啟用指令依次啟用所述外鍵信息表中外鍵信息的外鍵約束。
6.一種數據表的數據插入裝置,其特征在于,包括: 接收單元,用于接收數據插入指令,所述數據插入指令用于向數據表中插入數據,所述數據表為帶有外鍵約束的數據表; 第一獲取單元,用于獲取所述數據表的外鍵信息; 第二獲取單元,用于獲取所述外鍵信息對應的禁用指令; 禁用單元,用于通過所述外鍵信息對應的禁用指令禁用所述數據表的外鍵約束;以及 插入單元,用于基于所述數據插入指令在執行禁用之后的所述數據表中插入數據。
7.根據權利要求6所述的數據表的數據插入裝置,其特征在于,所述第一獲取單元包括: 第一獲取模塊,用于獲取數據庫系統的系統表,所述系統表為包含有所述數據庫系統中所述外鍵信息的表;以及 查找模塊,用于從所述系統表查找所述數據表的外鍵信息。
8.根據權利要求7所述的數據表的數據插入裝置,其特征在于, 所述第一獲取單元包括:第二獲取模塊,用于獲取所述數據表的外鍵信息表,所述外鍵信息表包括多個外鍵信息, 所述禁用單元包括:禁用模塊,用于通過所述外鍵信息對應的禁用指令同時禁用所述外鍵信息表中所有外鍵信息的外鍵約束,或者用于通過所述外鍵信息對應的禁用指令依次禁用所述外鍵信息表中外鍵信息的外鍵約束。
9.根據權利要求8所述的數據表的數據插入裝置,其特征在于,所述數據插入裝置還包括: 第三獲取單元,用于在基于所述數據插入指令在執行禁用之后的所述數據表中插入數據之后,獲取所述外鍵信息對應的啟用指令;以及 啟用單元,用于通過所述外鍵信息對應的啟用指令啟用所述數據表的外鍵約束。
10.根據權利要求9所述的數據表的數據插入裝置,其特征在于,所述啟用單元包括: 啟用模塊,用于通過所述外鍵信息對應的啟用指令同時啟用所述外鍵信息表中所有外鍵信息的外鍵約束,或者用 于通過所述外鍵信息對應的啟用指令依次啟用所述外鍵信息表中外鍵信息的外鍵約束。
【文檔編號】G06F17/30GK103605782SQ201310629536
【公開日】2014年2月26日 申請日期:2013年11月29日 優先權日:2013年11月29日
【發明者】樊在闊, 楊基彬, 洪超 申請人:北京國雙科技有限公司