亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

Mysql開發(fā)中的外鍵與參照完整性

添加時間:2014-1-12 19:53:31  添加: 思海網(wǎng)絡(luò) 

  參照完整性(Referential integrity)是數(shù)據(jù)庫設(shè)計中一個重要的概念。在系統(tǒng)不同的列表中,當(dāng)數(shù)據(jù)庫所有參照合法或非合法關(guān)聯(lián)時都會涉及到參照完整性。當(dāng)參照完整性存在時,任何與不存在記錄的關(guān)聯(lián)將變得無效化,由此可防止用戶出現(xiàn)各種錯誤,從而提供更為準(zhǔn)確和實用的數(shù)據(jù)庫。

  參照完整性通常通過外鍵(foreign key)的使用而被廣泛應(yīng)用。長久以來,流行工具開源RDBMS MySQL并沒有支持外鍵,原因是這種支持將會降低RDBMS的速度和性能。然而,由于很多用戶對參照完整性的優(yōu)點倍感興趣,最近MySQL的不同版本都通過新InnoDB列表引擎支持外鍵。由此,在數(shù)據(jù)庫組成的列表中保持參照完整性將變得非常簡單。

為了建立兩個MySQL表之間的一個外鍵關(guān)系,必須滿足以下三種情況:

兩個表必須是InnoDB表類型。

使用在外鍵關(guān)系的域必須為索引型(Index)。

使用在外鍵關(guān)系的域必須與數(shù)據(jù)類型相似。

例子是理解以上要點的最好方法。如表A所示,建立兩個表,其中一個列出動物種類及相應(yīng)的代碼(表名為:species),另一表列出動物園中的動物(表名為:zoo)。現(xiàn)在,我們想通過species關(guān)聯(lián)這兩個表,所以我們只需要接受和保存zoo表中包含species表中的合法動物的入口到數(shù)據(jù)庫中。

表A

mysql> CREATE TABLE species (id TINYINT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, PRIMARY KEY(id)) ENGINE=INNODB;

Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO species VALUES (1, 'orangutan'), (2, 'elephant'), (3, 'hippopotamus'), (4, 'yak');

Query OK, 4 rows affected (0.06 sec)

Records: 4 Duplicates: 0 Warnings: 0

mysql> CREATE TABLE zoo (id INT(4) NOT NULL, name VARCHAR(50) NOT NULL, FK_species TINYINT(4) NOT NULL, INDEX (FK_species), FOREIGN KEY (FK_species) REFERENCES species (id), PRIMARY KEY(id)) ENGINE=INNODB;

注意:對于非InnoDB表, FOREIGN KEY 語句將被忽略。

現(xiàn)在,fieldszoo.species與species.id 之間存在一個外鍵關(guān)系。只有相應(yīng)的zoo.specie與species.idfield的一個值相匹配,動物表中的入口才可被訪問。以下的輸出即演示了當(dāng)你想輸入一個Harry Hippopotamus記錄,而使用到不合法的species代碼:

mysql> INSERT INTO zoo VALUES (1, 'Harry', 5);

ERROR 1216 (23000): Cannot add or update a child row: a foreign key constraint fails

這里,MySQL核查species表以查看species代碼是否存在,如果發(fā)現(xiàn)不存在,就拒絕該記錄。當(dāng)你輸入正確代碼的,可以與以上做比較。

mysql> INSERT INTO zoo VALUES (1, 'Harry', 3);

Query OK, 1 row affected (0.06 sec)

關(guān)鍵字:Mysql、參照完整性、數(shù)據(jù)庫

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站