從上面的這個圖可以看到在設計的時候,就給表1添加一個外鍵,這個外鍵就是表2中的學號字段,那么這樣表1就是主表,表2就是子表。所以結合2張表就能保持數據的一致性、完整性(估計就是還原成原來的那張大表)。
專注于為中小企業提供成都網站設計、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業青原免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了數千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
借著這個例子再談談外鍵的一些事項:
1、表1可以有一個或者多個外鍵,也可以沒有。(如果表1有多個外鍵可不可以是這樣的情況,表2中的多個字段是表1的外鍵;或者說表1的多個外鍵是在多個表中)
2、這個外鍵可以不是表1的主鍵,但必須是子表的主鍵。(簡單的說就是,如果一個字段是某個表的外鍵時,那么該字段必須是主鍵)
數據庫mysql
建立外鍵的前提:本表的列必須與外鍵類型相同(外鍵必須是外表主鍵)。
外鍵作用:使兩張表形成關聯,外鍵只能引用外表中的列的值!
指定主鍵關鍵字:foreignkey(列名)
引用外鍵關鍵字:references外鍵表名(外鍵列名)
事件觸發限制:ondelete和onupdate,可設參數cascade(跟隨外鍵改動),restrict(限制外表中的外鍵改動),setNull(設空值),setDefault(設默認值),[默認]noaction
例如:
outTable表主鍵id類型int
創建含有外鍵的表:
createtabletemp(
idint,
namechar(20),
foreignkey(id)referencesoutTable(id)ondeletecascadeonupdatecascade);
說明:把id列設為外鍵參照外表outTable的id列當外鍵的值刪除本表中對應的列篩除當外鍵的值改變本表中對應的列值改變。
自己實踐才能完全了解外鍵的作用關鍵是:事件觸發限制的作用
為已經添加好的數據表添加外鍵:
語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵字段名) REFERENCES 外表表名(對應的表的主鍵字段名);
例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
//FK_ID是外鍵的名稱
/*
CREATE TABLE `tb_active` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `user_id_2` (`user_id`),
CONSTRAINT `FK_ID` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
*/
刪除外鍵
語法: ALTER TABLE table-name DROP FOREIGN KEY key-id;
例: ALTER TABLE `tb_active` DROP FOREIGN KEY 'FK_ID'
自動鍵更新和刪除:
外鍵可以保證新插入的記錄的完整性,但是,如果在REFERENCES從句中已命名的表刪除記錄會怎么樣?在使用同樣的值作為外鍵的輔助表中會發生什么?
很明顯,那些記錄也應該被刪除,否則在數據庫中就會有很多無意義的孤立記錄,MYSQL可以通過向FOREIGN KEY...REFERENCES修飾符添加一個ON DELETE 或ON UPDATE子句簡化任務,它告訴了數據庫在這種情況如何處理孤立任務。
工具/原料
電腦??MySQL
方法/步驟
設置主鍵:
1、通過終端進入到mysql命令行工具。
2、通過use關鍵字進行到目標數據庫里。
3、如原表已有主鍵,先把原來的主鍵刪除掉,通過DROPPRIMARYKEY命令:ALTERTABLE`jingyan`DROPPRIMARYKEY;。
4、主鍵已經沒有了。
5、通過命令:ADDPRIMARYKEY來添加ALTERTABLE`jingyan`ADDPRIMARYKEY(`id`)。
6、輸入后按下回車鍵即可看到queryok執行成功的字符。
7、回到數據庫的可視化工具,即可顯示現在的表在id列上添加了主鍵了。
設置外鍵:
1、創建好主從表。
2、選擇主表,點擊設計表,進入到表設計界面。
3、點擊外鍵,進入到外鍵設置界面。
4、先設置外鍵名稱和選擇主表的外鍵字段。
5、然后在設置外鍵字段對應從表的數據庫、表名和字。
6、點擊保存就完成外鍵設置了。
通過工具NAVICAT 設計表時進行設計
打開NAVICAT,連接數據庫
右鍵目標表,選擇設計表
打開后選擇外鍵菜單,具體如圖:
分別設置外鍵名,字段,關聯數據庫、表、字段,以及刪除時操作,更新時操作方式然后點擊保存按鈕即可
也可以通過SQL方式完成對表外鍵的添加,如:
語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵字段名) REFERENCES 外表表名(對應的表的主鍵字段名);
文章標題:mysql外鍵怎么定義 mysql如何定義外鍵
文章鏈接:http://www.yijiale78.com/article14/hhigge.html
成都網站建設公司_創新互聯,為您提供面包屑導航、網站設計公司、、網站排名、品牌網站制作、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯