掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
1、首先雙擊SQLyogEnt的快捷方式以打開軟件;

2、進入到軟件首頁,首先創(chuàng)建一個新的數(shù)據(jù)庫,命令為newMysql;
3、創(chuàng)建兩個表,命令為class、student;
class表結(jié)構(gòu)為id、class_code、class_name;
student表結(jié)構(gòu)為id、class_code、student_code、student_name;
4、創(chuàng)建成功后,在newMysql數(shù)據(jù)庫列表中就存在了兩個表;
5、然后我們來創(chuàng)建外鍵;通過sql創(chuàng)建:alter table class add foreign key class_foreignKey(id) references student(id);
6、然后也可以對外鍵進行刪除處理;通過sql刪除:ALTER TABLE class DROP FOREIGN KEY class_foreignKey;
打開我的navicat,然后找到我的teacher表,選中它,然后點擊菜單欄上的‘design table'
在彈出的對話框中找到“Foreign Keys”,然后單機。
然后會出現(xiàn)一個設(shè)置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思。‘name’:可以不填,你一會保存成功系統(tǒng)會自動生成。FieldName’:就是你要把哪個鍵設(shè)置為外鍵。這里選擇‘dept’,‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫。‘Reference Table‘ :關(guān)聯(lián)的表 這里是dept表‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code‘ondelete’:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會設(shè)置為null.
設(shè)置完成后點擊‘save’保存退出,也可以點擊‘a(chǎn)dd Foreign Key’再添加一個外鍵。
打開我的navicat,然后找到我的teacher表,選中它,然后點擊菜單欄上的‘design table’。如下圖:
在彈出的對話框中找到“Foreign Keys”,然后單機。如下圖:
然后會出現(xiàn)一個設(shè)置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思?!畁ame’:可以不填,你一會保存成功系統(tǒng)會自動生成。FieldName’:就是你要把哪個鍵設(shè)置為外鍵。這里選擇‘dept’,‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫?!甊eference Table‘ :關(guān)聯(lián)的表 這里是dept表‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code‘ondelete’:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會設(shè)置為null。如圖
MySQL中可以通過以下方式設(shè)置主鍵約束和外鍵約束,并設(shè)置級聯(lián)更新:1. 設(shè)置主鍵約束:在創(chuàng)建表時,可以使用PRIMARY KEY關(guān)鍵字來設(shè)置主鍵約束。
例如,創(chuàng)建一個名為"students"的表,其中"student_id"字段為主鍵:CREATE TABLE students ( student_id INT PRIMARY KEY, name VARCHAR(50), age INT);2. 設(shè)置外鍵約束:在創(chuàng)建表時,可以使用FOREIGN KEY關(guān)鍵字來設(shè)置外鍵約束。
例如,創(chuàng)建一個名為"courses"的表,其中"student_id"字段為外鍵,參考了"students"表的主鍵:CREATE TABLE courses ( course_id INT, course_name VARCHAR(50), student_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id));3. 設(shè)置級聯(lián)更新:可以使用ON UPDATE CASCADE關(guān)鍵字來設(shè)置級聯(lián)更新。
例如,修改"courses"表的外鍵約束,使其在"students"表中的主鍵更新時,自動更新"courses"表中的外鍵值:ALTER TABLE courses MODIFY student_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id) ON UPDATE CASCADE;通過以上設(shè)置,當(dāng)"students"表中的主鍵值更新時,"courses"表中對應(yīng)的外鍵值也會自動更新。
總結(jié):MySQL中,可以通過使用PRIMARY KEY關(guān)鍵字設(shè)置主鍵約束,使用FOREIGN KEY關(guān)鍵字設(shè)置外鍵約束,并使用ON UPDATE CASCADE關(guān)鍵字設(shè)置級聯(lián)更新。
這樣可以保證數(shù)據(jù)的完整性和一致性。
到此,以上就是小編對于mysql為什么添加不了外鍵的問題就介紹到這了,希望這3點解答對大家有用。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流