為已經(jīng)添加好的數(shù)據(jù)表添加外鍵:
創(chuàng)新互聯(lián)公司主要為客戶提供服務項目涵蓋了網(wǎng)頁視覺設計、VI標志設計、營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應式成都網(wǎng)站建設、手機網(wǎng)站開發(fā)、微商城、網(wǎng)站托管及網(wǎng)頁維護、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務器租用、視頻、平面設計、SEO優(yōu)化排名。設計、前端、后端三個建站步驟的完善服務體系。一人跟蹤測試的建站服務標準。已經(jīng)為成都廣告推廣行業(yè)客戶提供了網(wǎng)站推廣服務。
語法: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從句中已命名的表刪除記錄會怎么樣?在使用同樣的值作為外鍵的輔助表中會發(fā)生什么?
很明顯,那些記錄也應該被刪除,否則在數(shù)據(jù)庫中就會有很多無意義的孤立記錄,MYSQL可以通過向FOREIGN KEY...REFERENCES修飾符添加一個ON DELETE 或ON UPDATE子句簡化任務,它告訴了數(shù)據(jù)庫在這種情況如何處理孤立任務。
alter table 需加外鍵的表
add constraint 外鍵名 foreign key(需加外鍵表的字段名)
referencnes 關聯(lián)表名(關聯(lián)字段名)
ON DELETE CASCADE --級聯(lián)刪除
ON UPDATE CASCADE; --級聯(lián)更新
通過工具NAVICAT 設計表時進行設計
打開NAVICAT,連接數(shù)據(jù)庫
右鍵目標表,選擇設計表
打開后選擇外鍵菜單,具體如圖:
分別設置外鍵名,字段,關聯(lián)數(shù)據(jù)庫、表、字段,以及刪除時操作,更新時操作方式然后點擊保存按鈕即可
也可以通過SQL方式完成對表外鍵的添加,如:
語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵字段名) REFERENCES 外表表名(對應的表的主鍵字段名);