亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2014-06-20 13:16:15周誼李國(guó)忠
        無線互聯(lián)科技 2014年3期
        關(guān)鍵詞:觸發(fā)器完整性約束

        周誼 李國(guó)忠

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

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

        1 引言

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

        2 了解MYSQL中的完整性約束

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

        2.1 實(shí)體完整性

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

        2.2 參照完整性約束

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

        2.3 域完整性約束

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

        2.4 用戶定義完整性

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

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

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

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

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

        那么我們?cè)趺礃硬拍軐?shí)現(xiàn)數(shù)據(jù)中域完整性的約束呢?

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

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

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

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

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

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

        5 結(jié)論

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

        [參考文獻(xiàn)]

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

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

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

        猜你喜歡
        觸發(fā)器完整性約束
        稠油熱采水泥環(huán)完整性研究
        云南化工(2021年9期)2021-12-21 07:44:00
        “碳中和”約束下的路徑選擇
        約束離散KP方程族的完全Virasoro對(duì)稱
        主從JK觸發(fā)器邏輯功能分析
        電子世界(2017年22期)2017-12-02 03:03:45
        莫斷音動(dòng)聽 且惜意傳情——論音樂作品“完整性欣賞”的意義
        使用觸發(fā)器,強(qiáng)化安全性
        精子DNA完整性損傷的發(fā)生機(jī)制及診斷治療
        適當(dāng)放手能讓孩子更好地自我約束
        人生十六七(2015年6期)2015-02-28 13:08:38
        樁身完整性檢測(cè)中缺陷的綜合判別
        河南科技(2014年18期)2014-02-27 14:14:46
        不等式約束下AXA*=B的Hermite最小二乘解
        一区二区三区蜜桃在线视频| 国产自国产自愉自愉免费24区| 轻点好疼好大好爽视频| 无码专区天天躁天天躁在线| 无码人妻丝袜在线视频| 中文乱码字幕在线中文乱码| 国产大屁股白浆一区二区三区| 99久久精品在线视频| 欧美丰满熟妇bbb久久久| 桃花影院理论片在线| 精品人妻潮喷久久久又裸又黄| 亚洲精品成人国产av| 亚洲第一大av在线综合| 日本一区二区在线高清观看| 色偷偷888欧美精品久久久| 中文字幕乱偷无码av先锋蜜桃| 亚洲国产精品一区二区久| 人妻无码在线免费| 插入中文字幕在线一区二区三区| 日本免费观看视频一区二区| 最新欧美精品一区二区三区| 欧美日韩国产成人高清视频| 中文字幕喷水一区二区| 中文乱码字幕高清在线观看| 一区二区三区国产天堂| 99国产精品99久久久久久| 日韩精品中文字幕无码一区 | 狠狠噜狠狠狠狠丁香五月| 中文字幕日韩精品无码内射| 91免费永久国产在线观看| 日韩精品中文字幕免费人妻 | 老熟女的中文字幕欲望| 国产成人av一区二区三区| 亚洲精品成人网站在线观看| 亚洲av永久无码精品水牛影视| 亚洲av第一区国产精品| 国产啪亚洲国产精品无码| 99国产免费热播视频| 网红极品女神精品视频在线| 亚洲婷婷久久播66性av| 99国产精品99久久久久久|