一種數(shù)據(jù)唯一性檢查方法及裝置制造方法
【專利摘要】本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)唯一性檢查方法及裝置,當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索引,并獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存儲(chǔ)有所述主數(shù)據(jù)庫(kù)中已保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵,并向所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果,若寫結(jié)果中包含主鍵重復(fù)信息,確定所述待保存數(shù)據(jù)不具有唯一性,若寫結(jié)果中并不包含主鍵重復(fù)信息,確定所述待保存數(shù)據(jù)具有唯一性。需要說明,本發(fā)明實(shí)施例是向主數(shù)據(jù)中的索引表進(jìn)行寫操作,根據(jù)索引表是否返回主鍵重復(fù)信息確定待保存數(shù)據(jù)在主數(shù)據(jù)庫(kù)中是否具有唯一性,可見,本發(fā)明實(shí)施例只利用主數(shù)據(jù)庫(kù)的寫操作,并未對(duì)從數(shù)據(jù)庫(kù)進(jìn)行讀操作,唯一性檢查結(jié)果更加準(zhǔn)確。
【專利說明】一種數(shù)據(jù)唯一性檢查方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫(kù)【技術(shù)領(lǐng)域】,尤其是一種數(shù)據(jù)唯一性檢查方法及裝置。
【背景技術(shù)】
[0002] 數(shù)據(jù)庫(kù),是一種按照某種數(shù)據(jù)模型組織并存儲(chǔ)數(shù)據(jù)的系統(tǒng),其內(nèi)存儲(chǔ)有大量數(shù)據(jù), 因此可以看作是數(shù)據(jù)的倉(cāng)庫(kù)。通常,對(duì)數(shù)據(jù)庫(kù)的操作包括增加、刪除、修改、查詢操作。數(shù)據(jù) 量大且頻繁的數(shù)據(jù)操作,會(huì)影響數(shù)據(jù)庫(kù)的性能。因此,數(shù)據(jù)庫(kù)讀寫分離技術(shù)應(yīng)運(yùn)而生。
[0003] 具體地,數(shù)據(jù)庫(kù)讀寫分離技術(shù)的原理,是設(shè)置至少兩個(gè)數(shù)據(jù)庫(kù),即主數(shù)據(jù)庫(kù)及從數(shù) 據(jù)庫(kù)。主數(shù)據(jù)庫(kù)處理對(duì)數(shù)據(jù)的增、刪及改操作,從數(shù)據(jù)庫(kù)處理查查詢操作,這樣可以有效緩 解數(shù)據(jù)庫(kù)的I/O接口壓力。簡(jiǎn)單而言,主數(shù)據(jù)庫(kù)主要負(fù)責(zé)的是數(shù)據(jù)寫入操作,從數(shù)據(jù)庫(kù)僅提 供數(shù)據(jù)查詢服務(wù)。為了保證數(shù)據(jù)庫(kù)的同步性,當(dāng)在主數(shù)據(jù)庫(kù)中寫入數(shù)據(jù)后,主數(shù)據(jù)庫(kù)將數(shù)據(jù) 同步至從數(shù)據(jù)庫(kù)。我們知道,在數(shù)據(jù)庫(kù)的寫入操作前,為了降低數(shù)據(jù)冗余,需要對(duì)數(shù)據(jù)庫(kù)中 存儲(chǔ)的數(shù)據(jù)進(jìn)行唯一性檢查,即檢查數(shù)據(jù)庫(kù)中是否已經(jīng)存儲(chǔ)該數(shù)據(jù)。
[0004] 常規(guī)的數(shù)據(jù)唯一性檢查方式是,在數(shù)據(jù)庫(kù)中設(shè)置唯一性字段,利用唯一性字段查 詢數(shù)據(jù)庫(kù)中是否已經(jīng)存在待寫入數(shù)據(jù)。然而,應(yīng)用數(shù)據(jù)庫(kù)讀寫分離技術(shù)的數(shù)據(jù)庫(kù)系統(tǒng)中,在 數(shù)據(jù)被寫入主數(shù)據(jù)庫(kù)至同步操作完成之前的一段時(shí)間內(nèi),兩個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)并不相同。 此時(shí),利用從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)唯一性時(shí),查詢結(jié)果會(huì)出現(xiàn)誤差。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供了一種數(shù)據(jù)唯一性檢查方法及裝置,用以解決現(xiàn)有技術(shù)中 利用從數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)唯一性檢查時(shí),檢查結(jié)果出現(xiàn)誤差的技術(shù)問題。為實(shí)現(xiàn)所述發(fā)明目 的,本發(fā)明提供的技術(shù)方案如下:
[0006] 一種數(shù)據(jù)唯一性檢查方法,包括:
[0007]當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索引;
[0008]獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存儲(chǔ)有所述主數(shù)據(jù)庫(kù)中 已保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵;
[0009]向所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果;
[0010] 判斷所述寫結(jié)果中是否包含主鍵重復(fù)信息;
[0011] 若是,確定所述待保存數(shù)據(jù)不具有唯一性;
[0012] 否則,確定所述待保存數(shù)據(jù)具有唯一性。
[0013] 上述的數(shù)據(jù)唯一性檢查方法,優(yōu)選地,所述依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索引,包 括:
[0014]當(dāng)所述待保存數(shù)據(jù)包含多個(gè)字段時(shí),獲取若干個(gè)預(yù)設(shè)字段進(jìn)行拼接,獲得目標(biāo)索 弓丨;其中,所述若干個(gè)預(yù)設(shè)字段為默認(rèn)具有聯(lián)合不可重復(fù)約束的多個(gè)字段。
[0015] 上述的數(shù)據(jù)唯一性檢查方法,優(yōu)選地,在所述依據(jù)所述寫結(jié)果,確定所述待保存數(shù) 據(jù)的唯一性檢查結(jié)果之后,還包括:
[0016] 當(dāng)所述唯一性檢查結(jié)果為具有唯一性時(shí),將所述待寫入數(shù)據(jù)寫入所述主數(shù)據(jù)庫(kù) 中;
[0017] 當(dāng)所述唯一性檢查結(jié)果為不具有唯一性時(shí),提示數(shù)據(jù)重復(fù)。
[0018] 上述的數(shù)據(jù)唯一性檢查方法,優(yōu)選地,在所述將所述待寫入數(shù)據(jù)寫入所述主數(shù)據(jù) 庫(kù)中之后,還包括:
[0019] 將所述主數(shù)據(jù)庫(kù)中寫入的待寫入數(shù)據(jù)同步至所述從數(shù)據(jù)庫(kù)中。
[0020] 上述的數(shù)據(jù)唯一性檢查方法,優(yōu)選地,所述目標(biāo)索引為索引字符串。
[0021] 本申請(qǐng)還提供了一種數(shù)據(jù)唯一性檢查裝置,包括:
[0022] 目標(biāo)索引生成單元,用于當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo) 索引;
[0023] 索引表獲取單元,用于獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存 儲(chǔ)有所述主數(shù)據(jù)庫(kù)中已保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵;
[0024] 目標(biāo)索引寫單元,用于向所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果;
[0025] 判斷單元,用于判斷所述寫結(jié)果中是否包含主鍵重復(fù)信息;若是,觸發(fā)第一結(jié)果單 元;否則,觸發(fā)第二結(jié)果單元;
[0026] 第一結(jié)果單元,用于確定所述待保存數(shù)據(jù)不具有唯一性;
[0027] 第二結(jié)果單元,用于確定所述待保存數(shù)據(jù)具有唯一性。
[0028] 上述的數(shù)據(jù)唯一性檢查裝置,優(yōu)選地,所述目標(biāo)索引生成單元包括:
[0029]目標(biāo)索引生成子單元,用于當(dāng)所述待保存數(shù)據(jù)包含多個(gè)字段時(shí),獲取若干個(gè)預(yù)設(shè) 字段進(jìn)行拼接,獲得目標(biāo)索引;其中,所述若千個(gè)預(yù)設(shè)字段為默認(rèn)具有聯(lián)合不可重復(fù)約束的 多個(gè)字段。
[0030] 上述的數(shù)據(jù)唯一性檢查裝置,優(yōu)選地,還包括:
[0031] 數(shù)據(jù)寫入單元,用于當(dāng)所述唯一性檢查結(jié)果為具有唯一性時(shí),將所述待寫入數(shù)據(jù) 寫入所述主數(shù)據(jù)庫(kù)中;
[0032] 錯(cuò)誤提示單元,用于當(dāng)所述唯一性檢查結(jié)果為不具有唯一性時(shí),提示數(shù)據(jù)重復(fù)。 [0033] 上述的數(shù)據(jù)唯一性檢查裝置,優(yōu)選地,還包括:
[0034]數(shù)據(jù)同步單元,用于在所述將所述待寫入數(shù)據(jù)寫入所述主數(shù)據(jù)庫(kù)中之后,將所述 主數(shù)據(jù)庫(kù)中寫入的待寫入數(shù)據(jù)同步至所述從數(shù)據(jù)庫(kù)中。
[0035] 上述的數(shù)據(jù)唯一性檢查裝置,優(yōu)選地,所述目標(biāo)索引生成單元生成的目標(biāo)索引為 索引字符串。
[0036]本發(fā)明提供的數(shù)據(jù)唯一性檢查方法及裝置,當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待 保存數(shù)據(jù)生成目標(biāo)索引,并獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存儲(chǔ)有 所述主數(shù)據(jù)庫(kù)中己保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵,并向所述索引表執(zhí)行寫所述 目標(biāo)索引的操作,獲得寫結(jié)果,若寫結(jié)果中包含主鍵重復(fù)信息,確定所述待保存數(shù)據(jù)不具有 唯一性,若寫結(jié)果中并不包含主鍵重復(fù)信息,確定所述待保存數(shù)據(jù)具有唯一性。需要說明, 本發(fā)明實(shí)施例是向主數(shù)據(jù)中的索引表進(jìn)行寫操作,根據(jù)索引表是否返回主鍵重復(fù)信息確定 待保存數(shù)據(jù)在主數(shù)據(jù)庫(kù)中是否具有唯一性,可見,本發(fā)明實(shí)施例只利用主數(shù)據(jù)庫(kù)的寫操作, 并未對(duì)從數(shù)據(jù)庫(kù)進(jìn)行讀操作,唯一性檢查結(jié)果更加準(zhǔn)確。
【專利附圖】
【附圖說明】
[0037]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的頭施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0038]圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)唯一性檢查方法的流程圖;
[0039]圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)唯一性檢查方法的另一流程圖;
[0040]圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)唯一性檢查裝置的結(jié)構(gòu)框圖;
[0041] 圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)唯一性檢查裝置的另一結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0042] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0043]使用讀寫分離技術(shù)的數(shù)據(jù)庫(kù)系統(tǒng)中,在進(jìn)行唯一性檢查時(shí),會(huì)出現(xiàn)檢查誤差。具體 地,主數(shù)據(jù)中寫入數(shù)據(jù)后,在向從數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)同步操作之前,對(duì)從數(shù)據(jù)庫(kù)的唯一性查詢 會(huì)因?yàn)閿?shù)據(jù)不同步而出現(xiàn)誤差。究其原因,主數(shù)據(jù)庫(kù)中首先寫入數(shù)據(jù),其后需要一定時(shí)間向 從數(shù)據(jù)庫(kù)同步數(shù)據(jù),在時(shí)間差中進(jìn)行唯一性檢查則必然導(dǎo)致誤差。
[0044]解決思路之一是避開該時(shí)間差,具體而言,是在主數(shù)據(jù)向從數(shù)據(jù)庫(kù)同步數(shù)據(jù)之后 再進(jìn)行唯一性檢查。但是,本發(fā)明提供了另外一個(gè)解決思路,即直接在主數(shù)據(jù)庫(kù)中進(jìn)行唯一 性檢查。然而,我們知道,主數(shù)數(shù)據(jù)庫(kù)提供的是事務(wù)性操作,即增加、刪除及修改,并未提供 查詢服務(wù),而且主、從數(shù)據(jù)庫(kù)的設(shè)置就是為了解決單個(gè)數(shù)據(jù)庫(kù)寫入讀取的操作壓力,因此, 本發(fā)明在利用上述思路時(shí),需要找到一種有效的檢查方法。
[0045] 參照?qǐng)D1,其示出了本發(fā)明實(shí)施例提供的數(shù)據(jù)唯一性檢查方法的流程,具體包括以 下步驟:
[0046] 步驟S101 :當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索引。
[0047] 其中,待保存數(shù)據(jù)為需要寫入到主數(shù)據(jù)庫(kù)中的數(shù)據(jù)。當(dāng)接收到待保存數(shù)據(jù)時(shí),生成 該待保存數(shù)據(jù)對(duì)應(yīng)的索引。索引具有唯一性,因此可以利用該唯一性索引對(duì)數(shù)據(jù)進(jìn)行檢查。 其中,利用待保存數(shù)據(jù)生成索引的方法詳見下文。
[0048] 步驟S102:獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存儲(chǔ)有所述 主數(shù)據(jù)庫(kù)中已保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵。
[0049] 本實(shí)施例中,預(yù)先為數(shù)據(jù)庫(kù)中的每條數(shù)據(jù)記錄均生成對(duì)應(yīng)的唯一索引,并將各個(gè) 索引存儲(chǔ)在預(yù)先設(shè)置的索引表中。也就是說,索引表中存儲(chǔ)有主數(shù)據(jù)庫(kù)中已保存的全部數(shù) 據(jù)的索引。
[0050] 需要說明,在索引表中,將存儲(chǔ)索引的列設(shè)置為主鍵。原因是,由于數(shù)據(jù)表中每條 數(shù)據(jù)記錄的主鍵值均不能相同,因而,索引表中設(shè)置主鍵就為了保證了索引表中并不能存 在重復(fù)數(shù)據(jù)。由于主鍵是主數(shù)據(jù)庫(kù)中數(shù)據(jù)的索引,因而,也就是保證主數(shù)據(jù)庫(kù)中數(shù)據(jù)的唯一 性。
[0051] 步驟S103 :向所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果。
[0052]其中,我們知道,數(shù)據(jù)庫(kù)在對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行寫操作前,會(huì)根據(jù)數(shù)據(jù)表的各項(xiàng) 設(shè)置進(jìn)行對(duì)應(yīng)的判斷。其中,數(shù)據(jù)表設(shè)置為主鍵,則必然利用主鍵判斷是否存在重復(fù)數(shù)據(jù), 如果存在,生成主鍵重復(fù)信息,導(dǎo)致寫入失敗。當(dāng)通過各項(xiàng)檢查時(shí),寫入成功。
[0053] 也就是說,向索引表寫待保存數(shù)據(jù)的索引,索引表自動(dòng)生成寫結(jié)果。其中,寫結(jié)果 中可能包含有主鍵重復(fù)信息。
[0054]步驟S104 :判斷所述寫結(jié)果中是否包含主鍵重復(fù)信息;若是,執(zhí)行步驟S105 ;否 貝1J,執(zhí)行步驟S106。
[0055]其中,通過判斷寫結(jié)果中是否包含主鍵重復(fù)信息,便可知道待寫入數(shù)據(jù)在索引表 中是否具有唯一性。根據(jù)判斷結(jié)果分別執(zhí)行下述兩個(gè)步驟。
[0056] 步驟S105 :確定所述待保存數(shù)據(jù)不具有唯一性。
[0057]不具有唯一性,也就是說,索引表中并不存在與待寫入數(shù)據(jù)相同的數(shù)據(jù),由于索引 表中的主鍵是主數(shù)據(jù)庫(kù)中數(shù)據(jù)的索引,進(jìn)而說明主數(shù)據(jù)庫(kù)中并不存在與待寫入數(shù)據(jù)相同的 數(shù)據(jù)。
[0058] 步驟S106 :確定所述待保存數(shù)據(jù)具有唯一性。
[0059]具有唯一性,也就是說,索引表中已經(jīng)存在與待寫入數(shù)據(jù)相同的數(shù)據(jù),進(jìn)而說明主 數(shù)據(jù)庫(kù)中存在相同數(shù)據(jù)。
[0060] 由以上技術(shù)方案可知,本發(fā)明實(shí)施例提供的數(shù)據(jù)唯一性檢查方法,當(dāng)接收到待保 存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索引,并獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其 中,所述索引表中存儲(chǔ)有所述主數(shù)據(jù)庫(kù)中已保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵,并向 所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果,若寫結(jié)果中包含主鍵重復(fù)信息,確定 所述待保存數(shù)據(jù)不具有唯一性,若寫結(jié)果中并不包含主鍵重復(fù)信息,確定所述待保存數(shù)據(jù) 具有唯一性。需要說明,本發(fā)明實(shí)施例是向主數(shù)據(jù)中的索引表進(jìn)行寫操作,根據(jù)索引表是否 返回主鍵重復(fù)信息確定待保存數(shù)據(jù)在主數(shù)據(jù)庫(kù)中是否具有唯一性,可見,本發(fā)明實(shí)施例只 利用主數(shù)據(jù)庫(kù)的寫操作,并未對(duì)從數(shù)據(jù)庫(kù)進(jìn)行讀操作,唯一性檢查結(jié)果更加準(zhǔn)確。
[0061] 在上述實(shí)施例中,步驟S101當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目 標(biāo)索引的具體方式可以是:
[0062] 當(dāng)接收到待保存數(shù)據(jù)且所述待保存數(shù)據(jù)包含多個(gè)字段時(shí),獲取若干個(gè)預(yù)設(shè)字段進(jìn) 行拼接,獲得目標(biāo)索引。其中,所述若干個(gè)預(yù)設(shè)字段在所述主數(shù)據(jù)庫(kù)中設(shè)置有聯(lián)合不可重復(fù) 約束。
[0063] 具體地,在主數(shù)據(jù)庫(kù)中保存的數(shù)據(jù)記錄,可以默認(rèn)多個(gè)字段具有聯(lián)合不可重復(fù)約 束的性質(zhì),即聯(lián)合不可約束的字段值不能同時(shí)完全相同。例如,主數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)記錄 包含六個(gè)字段,為ID、CODE、NAME、GRADE、CLASS及AGE,分別代表主鍵、學(xué)號(hào)、姓名、年級(jí)、班 級(jí)及年齡。其中,默認(rèn)NAME、GRADE及CLASS三個(gè)字段為聯(lián)合不可重復(fù)字段,也就是說,在數(shù) 據(jù)庫(kù)中不能存儲(chǔ)姓名、年級(jí)及班級(jí)完全相同的兩條數(shù)據(jù)記錄。
[0064] 本實(shí)施例中,待保存數(shù)據(jù)與主數(shù)據(jù)庫(kù)中數(shù)據(jù)相同,包含同樣的多個(gè)字段,進(jìn)而,將 設(shè)置聯(lián)合不可重復(fù)約束的字段生成唯一索引。優(yōu)選地,所述索引為索引字符串。生成索引 字符串的方法可以有多種,如將多個(gè)預(yù)設(shè)字段的值依次拼接,拼接時(shí)可以使用字符。例 如,待保存數(shù)據(jù)如表1所示,且NAME、GRADE及CLASS三個(gè)字段為主數(shù)據(jù)庫(kù)中設(shè)置有聯(lián)合不 可約束的字段,因此,將"張三"、"四年級(jí)"及"六班"三個(gè)值利用依次拼接,獲得的目標(biāo) 索引可以為"張三-四年級(jí)-六班"。
[0065] 表 1
[0066]
【權(quán)利要求】
1. 一種數(shù)據(jù)唯一性檢查方法,其特征在于,包括: 當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索引; 獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存儲(chǔ)有所述主數(shù)據(jù)庫(kù)中已保 存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵; 向所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果; 判斷所述寫結(jié)果中是否包含主鍵重復(fù)信息; 若是,確定所述待保存數(shù)據(jù)不具有唯一性; 否則,確定所述待保存數(shù)據(jù)具有唯一性。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)唯一性檢查方法,其特征在于,所述依據(jù)所述待保存數(shù) 據(jù)生成目標(biāo)索引,包括: 當(dāng)所述待保存數(shù)據(jù)包含多個(gè)字段時(shí),獲取若干個(gè)預(yù)設(shè)字段進(jìn)行拼接,獲得目標(biāo)索引;其 中,所述若干個(gè)預(yù)設(shè)字段為默認(rèn)具有聯(lián)合不可重復(fù)約束的多個(gè)字段。
3. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)唯一性檢查方法,其特征在于,在所述依據(jù)所述寫結(jié)果, 確定所述待保存數(shù)據(jù)的唯一性檢查結(jié)果之后,還包括: 當(dāng)所述唯一性檢查結(jié)果為具有唯一性時(shí),將所述待寫入數(shù)據(jù)寫入所述主數(shù)據(jù)庫(kù)中; 當(dāng)所述唯一性檢查結(jié)果為不具有唯一性時(shí),提示數(shù)據(jù)重復(fù)。
4. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)唯一性檢查方法,其特征在于,在所述將所述待寫入數(shù) 據(jù)寫入所述主數(shù)據(jù)庫(kù)中之后,還包括: 將所述主數(shù)據(jù)庫(kù)中寫入的待寫入數(shù)據(jù)同步至所述從數(shù)據(jù)庫(kù)中。
5. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)唯一性檢查方法,其特征在于,所述目標(biāo)索引為索引字 符串。
6. -種數(shù)據(jù)唯一性檢查裝置,其特征在于,包括: 目標(biāo)索引生成單元,用于當(dāng)接收到待保存數(shù)據(jù)時(shí),依據(jù)所述待保存數(shù)據(jù)生成目標(biāo)索 引; 索引表獲取單元,用于獲取主數(shù)據(jù)庫(kù)中預(yù)先設(shè)置的索引表;其中,所述索引表中存儲(chǔ)有 所述主數(shù)據(jù)庫(kù)中已保存數(shù)據(jù)的索引,且所述索引設(shè)置為主鍵; 目標(biāo)索引寫單元,用于向所述索引表執(zhí)行寫所述目標(biāo)索引的操作,獲得寫結(jié)果; 判斷單元,用于判斷所述寫結(jié)果中是否包含主鍵重復(fù)信息;若是,觸發(fā)第一結(jié)果單元; 否則,觸發(fā)第二結(jié)果單元; 第一結(jié)果單元,用于確定所述待保存數(shù)據(jù)不具有唯一性; 第二結(jié)果單元,用于確定所述待保存數(shù)據(jù)具有唯一性。
7. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)唯一性檢查裝置,其特征在于,所述目標(biāo)索引生成單元 包括: 目標(biāo)索引生成子單元,用于當(dāng)所述待保存數(shù)據(jù)包含多個(gè)字段時(shí),獲取若干個(gè)預(yù)設(shè)字段 進(jìn)行拼接,獲得目標(biāo)索引;其中,所述若干個(gè)預(yù)設(shè)字段為默認(rèn)具有聯(lián)合不可重復(fù)約束的多個(gè) 字段。
8. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)唯一性檢查裝置,其特征在于,還包括: 數(shù)據(jù)寫入單元,用于當(dāng)所述唯一性檢查結(jié)果為具有唯一性時(shí),將所述待寫入數(shù)據(jù)寫入 所述主數(shù)據(jù)庫(kù)中; 錯(cuò)誤提示單元,用于當(dāng)所述唯一性檢查結(jié)果為不具有唯一性時(shí),提示數(shù)據(jù)重復(fù)。
9. 根據(jù)權(quán)利要求8所述的數(shù)據(jù)唯一性檢查裝置,其特征在于,還包括: 數(shù)據(jù)同步單元,用于在所述將所述待寫入數(shù)據(jù)寫入所述主數(shù)據(jù)庫(kù)中之后,將所述主數(shù) 據(jù)庫(kù)中寫入的待寫入數(shù)據(jù)同步至所述從數(shù)據(jù)庫(kù)中。
10. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)唯一性檢查裝置,其特征在于,所述目標(biāo)索引生成單元 生成的目標(biāo)索引為索引字符串。
【文檔編號(hào)】G06F17/30GK104268272SQ201410541504
【公開日】2015年1月7日 申請(qǐng)日期:2014年10月14日 優(yōu)先權(quán)日:2014年10月14日
【發(fā)明者】于忠清, 洪普君, 王金龍, 翟偉偉, 王友強(qiáng), 崔九梅 申請(qǐng)人:青島海爾軟件有限公司