首頁 >資料庫 >mysql教程 >Mysql添加外鍵的方式有哪些

Mysql添加外鍵的方式有哪些

WBOY
WBOY轉載
2023-05-29 17:10:487105瀏覽

Mysql新增外鍵的幾種方式

注意:新增外鍵是給從表格新增(即子表)
父表是主表

方法一:

在建立表之前:

FOREIGN KEY (子表id) REFERENCES 關聯表名(外主表id)

例如

  create table emp( 			
  	e_id int auto_increment primary key, 			
  	ename varchar(50) not null, 			
  	age int, 			job varchar(20),
  	salary int, 			
  	entrydate date, 			
  	managerid int, 			
  	dept_id int,
  	FOREIGN KEY (dept_id) REFERENCES dept(id) 	
  );

方法二:

在建立表格後新增:

ALTER TABLE 表1 ADD FOREIGN KEY (從表的外鍵) REFERENCES dept(主表的主鍵);

 例如:
 		ALTER TABLE emp ADD FOREIGN KEY (dep_id) REFERENCES dept(id);

注意:

主表(dept)存在從表(emp),從表引用了外鍵,不能直接刪除(主表)

DROP TABLE dept; --刪除失敗

在刪除表的時候,如果存在外鍵引用,則必須先刪除從表(也就是把存在相關外鍵約束的表全部刪掉),才能刪除主表。
以上的外鍵都是實體外鍵,屬於資料庫層級的引用,不建議使用,使用這個會造成資料耦合度大增。

主鍵:

是唯一識別一筆記錄,不能有重複的,不允許為空,用來保證資料完整性

外鍵:

是另一表的主鍵, 外鍵可以有重複的, 可以是空值,用來和其他表建立聯繫用的。所以說,如果談到了外鍵,一定是至少牽涉到兩張表。

注意:

1、外鍵欄位在建立的時候就應該與主表的型別完全一致(長度等等),否則創建外鍵會報錯;

2、外鍵表是不能插入主表不存在的資料(該資料指的是與主表主鍵或從表外鍵的資料)。 –例如部門號只有1,2,3,4,從表插入資料時外鍵值為5就會產生錯誤
——>即外鍵表的外鍵約束不能隨意取值

3、當修改了主表的資料後,關聯的外鍵表的外鍵約束已經實現了自動修改。

加上constraint和不加法的區別

If constraints are not added, the system will automatically generate names for them, which can be difficult to remember.。加constraint,可以依照自己的意圖為約束取名字。

補充:MySQL 刪除外鍵動作

1.顯現要刪除的外鍵。 show create table 表名;

Mysql添加外鍵的方式有哪些

2.看到限制;

Mysql添加外鍵的方式有哪些

##3.刪除即可。一種重寫方式是: 使用 alter table 指令刪除表中的外鍵約束,語法如下: ALTER TABLE 資料表名 DROP FOREIGN KEY 約束名稱;

Mysql添加外鍵的方式有哪些#

以上是Mysql添加外鍵的方式有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除