您好,登錄后才能下訂單哦!
本篇內容介紹了“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和不加的區別
當不加constraint,系統將自動給約束起名字,不好記住。 加constraint,可以按照自己的意圖給約束起名字。
1.顯現要刪除的外鍵。 show create table 表名;
2.看到約束;
3.刪除即可。 alter table 表名 drop foreign key 約束名;
“Mysql添加外鍵的方式有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。