999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

論MYSQL中域完整性約束的實(shí)現(xiàn)

2014-06-20 13:16:15周誼李國忠
無線互聯(lián)科技 2014年3期

周誼 李國忠

摘 要:本文通過對MYSQL中設(shè)置的域完整性約束不能實(shí)現(xiàn)的介紹,分析完整性約束的實(shí)質(zhì)問題,引入觸發(fā)器的錯誤中止實(shí)例,并由此探討域完整性約束的解決方案。

關(guān)鍵詞:完整性;約束;MYSQL;CHECK;觸發(fā)器

1 引言

一致性和準(zhǔn)確性對數(shù)據(jù)庫中的數(shù)據(jù)來說是非常重要的,對數(shù)據(jù)表設(shè)置數(shù)據(jù)完整性約束是數(shù)據(jù)庫服務(wù)器的一項(xiàng)重要功能。如果定義了完整性約束,每次數(shù)據(jù)更新,數(shù)據(jù)庫系統(tǒng)都會測試新的內(nèi)容是否合符的完整性設(shè)置從而對表中的輸入做出限制。

2 了解MYSQL中的完整性約束

數(shù)據(jù)完整性大致劃分為四種類型:實(shí)體完整性、參照完整性、域完整性和用戶定義完整性。

2.1 實(shí)體完整性

實(shí)體完整性保證每一個值都能由稱為主鍵的屬性來唯一標(biāo)識。主鍵就是表中的一個或多個字段的組合值,其內(nèi)容能唯一地標(biāo)志表中的每一條記錄。通過定義PRIMARY KEY約束來創(chuàng)建主鍵約束,其內(nèi)容不能取空值。

2.2 參照完整性約束

參照完整性約束也被稱為外鍵約束,參照完整性約束保證外鍵的值必須與主表中相關(guān)的主鍵值相匹配。通過定義REFERENCE_DEFINITION約束來創(chuàng)建外鍵約束。

2.3 域完整性約束

域完整性約束保證只在有效范圍內(nèi)的值才能存儲到字段中,它可以通過限制數(shù)據(jù)類型、值域來實(shí)現(xiàn)。CHECK完整性約束就是通過設(shè)置值域來實(shí)現(xiàn)字段的取值范圍。

2.4 用戶定義完整性

用戶定義完整性是由用戶指定的一組規(guī)則來實(shí)現(xiàn)對數(shù)據(jù)的特定約束。

另在數(shù)據(jù)表中,唯一性約束像主鍵約束一樣,是表的一個或多個字段的組合值,它們的值在任何時候都是唯一的。唯一性約束是沒有被選做主鍵約束的候選約束。通過定義UNIQUE約束來創(chuàng)建唯一性約束,在一個數(shù)據(jù)表中唯一性約束可以有多個而主鍵約束只能有一個。

在MYSQL中完整性約束能夠?qū)崿F(xiàn)主鍵約束、參照完整性約束和唯一性約束,而CHECK會被忽略,且沒有提供專門的用戶自定義完整性窗口。

3 MYSQL中CHECK完整性約束實(shí)例

我們會發(fā)現(xiàn)記錄能正常地輸入到數(shù)據(jù)表中。在MYSQL中是這樣規(guī)定的:能夠接受對CHECK子句的分析,但是會被忽略。接受這些子句但又忽略子句的原因是為了提高兼容性,以便更容易地從其它SQL服務(wù)器中導(dǎo)入代碼,并運(yùn)行應(yīng)用程序創(chuàng)建帶參考數(shù)據(jù)的表。

那么我們怎么樣才能實(shí)現(xiàn)數(shù)據(jù)中域完整性的約束呢?

4 域完整性約束的實(shí)現(xiàn)

我們怎么解決這個問題呢,當(dāng)輸入的數(shù)據(jù)不符合要求時需要能夠及時中止操作的進(jìn)行,那么有兩個條件:一是插入表的數(shù)據(jù)時能被激活,二是能夠中止操作。

觸發(fā)器是一種特殊的存儲過程,在向表中插入、更新或刪除記錄時執(zhí)行,以限制和檢查數(shù)據(jù)的改變。觸發(fā)器是不需要調(diào)用的,當(dāng)對數(shù)據(jù)表進(jìn)行插入、更新或刪除事件時,它會被激活,由于與表的關(guān)系密切,用于保護(hù)表中的數(shù)據(jù)。

找到了激活的方式怎么才能中止錯誤的域輸入呢?MYSQL系統(tǒng)并不返回CHECK錯誤,那么能不能自己人為地制造錯誤來中止操作——答案是肯定地,我們的解決方案就是添加一個INSERT觸發(fā)器,在觸發(fā)器中設(shè)置一個域條件來觸發(fā)一個人為錯誤轉(zhuǎn)向。

在這個觸發(fā)器中判斷輸入的新記錄中如果性別不在男女范圍內(nèi),則向一個不存在的數(shù)據(jù)表中插入記錄,當(dāng)然也可以用其它的錯誤來中止繼續(xù)。

如果是在軟件編程中,我們可以通過觸發(fā)器返回的錯誤號來轉(zhuǎn)成真實(shí)的錯誤提示信息。

5 結(jié)論

在MYSQL中域完整性在系統(tǒng)完整性約束不能實(shí)現(xiàn)的情況下,我們還可以通過其它的途徑來解決,只要我們正確分析解決問題所需具備的條件一步步進(jìn)行下去就能找到解決方法。

[參考文獻(xiàn)]

[1]鄭阿奇.MySQL實(shí)用教程.電子工業(yè)出版社,2009.1.

[2]宋振會.SQL Server 2000中文版基礎(chǔ)教程.清華大學(xué)出版社,2005.5.

[3]周誼,溫且兵.在SQL Server中一類錯誤的避免.科技信息,2011.3.

主站蜘蛛池模板: 18禁影院亚洲专区| 丁香综合在线| 亚洲综合精品香蕉久久网| 久青草免费在线视频| 久久99久久无码毛片一区二区| 青青青国产精品国产精品美女| www.亚洲国产| 中文字幕首页系列人妻| 欧美日本一区二区三区免费| 色综合天天操| 男女猛烈无遮挡午夜视频| 99久久精品国产麻豆婷婷| 亚洲日本中文字幕天堂网| 欧美a在线视频| 国产丝袜啪啪| 国产精品久久久久久久久kt| 日韩精品高清自在线| 成人韩免费网站| 日本黄色不卡视频| 国产在线小视频| 国产精品人成在线播放| 青青草原国产免费av观看| 老司机精品久久| 精品久久久久久成人AV| 精品国产成人av免费| 最新加勒比隔壁人妻| 91黄视频在线观看| 伊人AV天堂| 成人福利一区二区视频在线| 九色视频线上播放| 久久久久人妻精品一区三寸蜜桃| 91成人在线免费视频| 国产无遮挡猛进猛出免费软件| 日韩精品毛片| 国产欧美另类| 亚洲欧美成aⅴ人在线观看 | 国产成人精品午夜视频'| 免费可以看的无遮挡av无码| 91久久偷偷做嫩草影院| 国产99视频免费精品是看6| 综合社区亚洲熟妇p| 91人妻日韩人妻无码专区精品| www欧美在线观看| 久草视频一区| v天堂中文在线| 欧美在线视频不卡| 扒开粉嫩的小缝隙喷白浆视频| 国产一级裸网站| 久久这里只精品热免费99| 亚洲婷婷六月| 国产v欧美v日韩v综合精品| 国产欧美日韩资源在线观看| 亚洲无码电影| 波多野结衣国产精品| 99视频精品全国免费品| 欧美国产精品不卡在线观看 | 国产精品v欧美| 国外欧美一区另类中文字幕| 三级视频中文字幕| 素人激情视频福利| 九九香蕉视频| 456亚洲人成高清在线| 亚洲区一区| 国产精品午夜电影| 欧美成人一区午夜福利在线| 国产91小视频在线观看 | 久久伊人操| 亚洲男人天堂网址| 国产一区二区丝袜高跟鞋| 亚洲天堂网在线观看视频| 97国产在线观看| 狠狠色丁香婷婷综合| 成人免费午间影院在线观看| 免费av一区二区三区在线| 国产精品林美惠子在线播放| 久久国产毛片| 狠狠色噜噜狠狠狠狠色综合久| 国产午夜小视频| 日本爱爱精品一区二区| 99视频在线看| 久热精品免费| 中文字幕 91|