<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MySQL外鍵和參照完整性的實現步驟

        來源:懂視網 責編:小采 時間:2020-11-09 14:12:03
        文檔

        MySQL外鍵和參照完整性的實現步驟

        MySQL外鍵和參照完整性的實現步驟:我們大家都知道MySQL參照完整性一般是通過MySQL外鍵(foreign key)的具體使用而隨之應用。總的來說,流行工具開源 RDBMS MySQL(與PHP搭配之最佳組合)并不支持外鍵,原因是這種支持將會降低RDBMS的速度和性能。 然而,由于很多用戶對參照完整性的優點倍感興趣
        推薦度:
        導讀MySQL外鍵和參照完整性的實現步驟:我們大家都知道MySQL參照完整性一般是通過MySQL外鍵(foreign key)的具體使用而隨之應用。總的來說,流行工具開源 RDBMS MySQL(與PHP搭配之最佳組合)并不支持外鍵,原因是這種支持將會降低RDBMS的速度和性能。 然而,由于很多用戶對參照完整性的優點倍感興趣

        我們大家都知道MySQL參照完整性一般是通過MySQL外鍵(foreign key)的具體使用而隨之應用。總的來說,流行工具開源 RDBMS MySQL(與PHP搭配之最佳組合)并不支持外鍵,原因是這種支持將會降低RDBMS的速度和性能。 然而,由于很多用戶對參照完整性的優點倍感興趣

        我們大家都知道MySQL參照完整性一般是通過MySQL外鍵(foreign key)的具體使用而隨之應用。總的來說,流行工具開源 RDBMS MySQL(與PHP搭配之最佳組合)并不支持外鍵,原因是這種支持將會降低RDBMS的速度和性能。

        然而,由于很多用戶對參照完整性的優點倍感興趣,最近MySQL(和PHP搭配之最佳組合)的不同版本都通過新InnoDB列表引擎支持外鍵。由此,在數據庫組成的列表中保持參照完整性將變得非常簡單。

        為了建立兩個MySQL(和PHP搭配之最佳組合)表之間的一個MySQL外鍵關系,必須滿足以下三種情況:

        兩個表必須是InnoDB表類型。

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

        使用在MySQL外鍵關系的域必須與數據類型相似。

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

        表A

        MySQL(和PHP搭配之最佳組合)> CREATE TABLE species (id TINYINT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, Prima(最完善的虛擬主機管理系統)RY KEY(id)) ENGINE=INNODB;

        1. Query OK, 0 rows affected (0.11 sec)
        2. MySQL(和PHP搭配之最佳組合)> INSERT INTO species VALUES (1, 'orangutan'), (2, 'elephant'), (3, 'hippopotamus'), (4, 'yak');
        3. Query OK, 4 rows affected (0.06 sec)
        4. Records: 4 Duplicates: 0 Warnings: 0

        MySQL(和PHP搭配之最佳組合)> 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), Prima(最完善的虛擬主機管理系統)RY KEY(id)) ENGINE=INNODB;

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

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

        1. MySQL(和PHP搭配之最佳組合)> INSERT INTO zoo VALUES (1, 'Harry', 5);
        2. ERROR 1216 (23000): Cannot add or update a child row: a foreign key constraint fails

        這里,MySQL(和PHP搭配之最佳組合)核查species表以查看species代碼是否存在,如果發現不存在,就拒絕該記錄。當你輸入正確代碼的,可以與以上做比較。

        1. MySQL(和PHP搭配之最佳組合)> INSERT INTO zoo VALUES (1, 'Harry', 3);
        2. Query OK, 1 row affected (0.06 sec)

        這里,MySQL(和PHP搭配之最佳組合)核查species表以查看species代碼是否存在,當發現存在,允許記錄保存在zoo表中。

        為了刪除一個MySQL外鍵關系,首先使用SHOW CREATE TABLE找出InnoDB的內部標簽,如表B所示:

        表 B

        1. +-------+---------------------------------------------------+
        2. | Table | Create Table |
        3. +-------+---------------------------------------------------+
        4. | zoo | CREATE TABLE `zoo` (
        5. `id` int(4) NOT NULL default '0',
        6. `name` varchar(50) NOT NULL default '',
        7. `FK_species` tinyint(4) NOT NULL default '0',
        8. KEY `FK_species` (`FK_species`),
        9. CONSTRAINT `zoo_ibfk_1` FOREIGN KEY (`FK_species`)
        10. REFERENCES `species` (`id`)
        11. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
        12. +-------+----------------------------------------------------+

        然后使用帶有DROP FOREIGN KEY 語句的ALTER TABLE命令,如以下:

        1. MySQL(和PHP搭配之最佳組合)> ALTER TABLE zoo DROP FOREIGN KEY zoo_ibfk_1;
        2. Query OK, 1 row affected (0.11 sec)
        3. Records: 1 Duplicates: 0 Warnings: 0

        為了將一個外鍵添加到一個現成的表中,使用ADD FOREIGN KEY的 ALTER TABLE語句指定合適的域作為一個外鍵:

        1. MySQL(和PHP搭配之最佳組合)> ALTER TABLE zoo ADD FOREIGN KEY (FK_species) REFERENCES species (id);
        2. Query OK, 1 rows affected (0.11 sec)
        3. Records: 1 Duplicates: 0 Warnings: 0

        如以上例子解釋的,MySQL外鍵在捉摸數據入口錯誤上起著重要的作用,由此可建立更為強健更加集成的數據庫。另一方面值得提到的是,執行外鍵核實是內部資料處理的過程,且不同表之間指定復雜的內部關系可以導致數據庫的性能下降。所以,在參照完整性與性能考慮之間找到平衡點相當重要,而使用外鍵就是能夠確保性能與穩健之間的最優結合。

        我期望本期的有關MySQL外鍵的介紹對你有所好處,你將會在下回的MySQL(和PHP搭配之最佳組合)數據庫設計中感受到外鍵的好處。編程快樂!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MySQL外鍵和參照完整性的實現步驟

        MySQL外鍵和參照完整性的實現步驟:我們大家都知道MySQL參照完整性一般是通過MySQL外鍵(foreign key)的具體使用而隨之應用。總的來說,流行工具開源 RDBMS MySQL(與PHP搭配之最佳組合)并不支持外鍵,原因是這種支持將會降低RDBMS的速度和性能。 然而,由于很多用戶對參照完整性的優點倍感興趣
        推薦度:
        標簽: 步驟 大家 實現
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久久影院久久久久免费精品国产小说 | 高清一区二区三区免费视频 | 国产黄色一级毛片亚洲黄片大全 | 韩国免费A级毛片久久| 亚洲国产一区二区三区| 在线视频亚洲一区| 国产成人免费福利网站| 国产区图片区小说区亚洲区| 免费人成视频在线观看不卡| 国产精品成人亚洲| 久久精品国产亚洲7777| 免费无码作爱视频| 亚洲av鲁丝一区二区三区| 8x成人永久免费视频| 亚洲一级片在线播放| 久久不见久久见免费影院| 亚洲AV日韩AV无码污污网站| 日韩中文字幕在线免费观看| 特级aaaaaaaaa毛片免费视频| 亚洲第一区精品观看| 鲁丝片一区二区三区免费| 亚洲视频免费在线看| 岛国片在线免费观看| jizz免费一区二区三区| 久久亚洲精品AB无码播放| 成年人免费的视频| 婷婷亚洲综合一区二区| 亚洲伊人久久成综合人影院| 野花香高清在线观看视频播放免费| 久久精品国产亚洲| 国产成人午夜精品免费视频| 亚洲av无码专区在线观看亚| 亚洲精品无码乱码成人| 韩国免费一级成人毛片| 边摸边脱吃奶边高潮视频免费| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲一区免费在线观看| 最好2018中文免费视频| 亚洲国产一区二区a毛片| 国产美女精品久久久久久久免费| 中文字幕在线视频免费|