本文目錄一覽:
mysql怎麼定義外鍵
資料庫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列當外鍵的值刪除本表中對應的列篩除當外鍵的值改變本表中對應的列值改變。
自己實踐才能完全了解外鍵的作用關鍵是:事件觸發限制的作用
mysql資料庫如何添加外鍵
mysql增加外鍵的方法:1、在CREATE TABLE語句中,通過FOREIGN KEY關鍵字來添加外鍵;2、在ALTER TABLE語句中,通過ADD和FOREIGN KEY關鍵字來添加外鍵。
mysql建立外鍵時,多對多如何建立?
一張表中的主鍵只能有一個,外鍵可以有多個,如果一張表中多個列都需要被別的表的外鍵參考,需要使用候選碼(非空並且唯一),具體到你的這個問題的需求可以考慮用如下方法解決:
把a表中的bookid和authorid都設置為非空並且唯一,即
create table a(bookid int not null unique, authorid int not null unique);
然後在book表和author表中就可以分別設置外鍵來參照a表中兩個不同的欄位了。
打開我的navicat,然後找到我的teacher表,選中它,然後點擊菜單欄上的『design table’
2. 在彈出的對話框中找到「Foreign Keys」,然後單機。
3. 然後會出現一個設置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思。『name』:可以不填,你一會保存成功系統會自動生成。FieldName』:就是你要把哪個鍵設置為外鍵。這裡選擇『dept』,『Reference DadaBase』:外鍵關聯的資料庫。『Reference Table『 :關聯的表 這裡是dept表『Forgin filed Names』:關聯的的欄位,這裡是code『ondelete』:就是刪除的時候選擇的動作。這裡我的選擇是setNull,意思就是當關聯的表刪除以後,teacher》dept欄位會設置為null.
4. 設置完成後點擊『save』保存退出,也可以點擊『add Foreign Key』再添加一個外鍵。
打開我的navicat,然後找到我的teacher表,選中它,然後點擊菜單欄上的『design table』。如下圖:
2. 在彈出的對話框中找到「Foreign Keys」,然後單機。如下圖:
3. 然後會出現一個設置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思。『name』:可以不填,你一會保存成功系統會自動生成。FieldName』:就是你要把哪個鍵設置為外鍵。這裡選擇『dept』,『Reference DadaBase』:外鍵關聯的資料庫。『Reference Table『 :關聯的表 這裡是dept表『Forgin filed Names』:關聯的的欄位,這裡是code『ondelete』:就是刪除的時候選擇的動作。這裡我的選擇是setNull,意思就是當關聯的表刪除以後,teacher》dept欄位會設置為null。如圖
4. 設置完成後點擊『save』保存退出,也可以點擊『add Foreign Key』再添加一個外鍵。k如圖:
mysql怎麼設定外鍵
為已經添加好的數據表添加外鍵:
語法: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中如何設置主鍵和外鍵
工具/原料
電腦 MySQL
方法/步驟
設置主鍵:
1、通過終端進入到mysql命令行工具。
2、通過use關鍵字進行到目標資料庫里。
3、如原表已有主鍵,先把原來的主鍵刪除掉,通過DROP PRIMARY KEY命令:ALTER TABLE `jingyan` DROP PRIMARY KEY;。
4、主鍵已經沒有了。
5、通過命令:ADD PRIMARY KEY來添加ALTER TABLE `jingyan` ADD PRIMARY KEY ( `id` ) 。
6、輸入後按下回車鍵即可看到 query ok執行成功的字元。
7、回到資料庫的可視化工具,即可顯示現在的表在id列上添加了主鍵了。
設置外鍵:
1、創建好主從表。
2、選擇主表,點擊設計表,進入到表設計界面。
3、點擊外鍵,進入到外鍵設置界面。
4、先設置外鍵名稱和選擇主表的外鍵欄位。
5、然後在設置外鍵欄位對應從表的資料庫、表名和字。
6、點擊保存就完成外鍵設置了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/193241.html