本文目錄一覽:
在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、點擊保存就完成外鍵設置了。
mysql表創建好後添加外鍵
首先要創建一個欄位:alter table 表名 add 欄位名 欄位類型;
再添加外鍵約束:alter table 需加外鍵的表 add constraint 外鍵名 foreign key(需加外鍵表的欄位名) references 關聯表名(關聯欄位名);
注意:外鍵名不能重複
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建立外鍵時,多對多如何建立?
一張表中的主鍵只能有一個,外鍵可以有多個,如果一張表中多個列都需要被別的表的外鍵參考,需要使用候選碼(非空並且唯一),具體到你的這個問題的需求可以考慮用如下方法解決:
把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如圖:
原創文章,作者:LCXJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140676.html