新聞中心
mysql怎么設(shè)置外鍵?
外鍵的設(shè)計初衷是為了在數(shù)據(jù)庫端保證對邏輯上相關(guān)聯(lián)的表數(shù)據(jù)在操作上的一致性與完整性。

創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|企業(yè)網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋成都塔吊租賃等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身開發(fā)品質(zhì)網(wǎng)站。
優(yōu)點:
精簡關(guān)聯(lián)數(shù)據(jù),減少數(shù)據(jù)冗余避免后期對大量冗余處理的額外運(yùn)維操作。
降低應(yīng)用代碼復(fù)雜性,減少了額外的異常處理相關(guān)數(shù)據(jù)管理全由數(shù)據(jù)庫端處理。
增加文檔的可讀性特別是在表設(shè)計開始,繪制 ER 圖的時候,邏輯簡單明了,可讀性非常強(qiáng)。
缺點:
性能壓力外鍵一般會存在級聯(lián)功能,級聯(lián)更新,級聯(lián)刪除等等。在海量數(shù)據(jù)場景,造成很大的性能壓力。比如插入一條新記錄,如果插入記錄的表有 10 個外鍵,那勢必要對關(guān)聯(lián)的 10 張表逐一檢查插入的記錄是否合理,延誤了正常插入的記錄時間。并且父表的更新會連帶子表加上相關(guān)的鎖。
其他功能的靈活性不佳比如,表結(jié)構(gòu)的更新等。
外鍵參照動作列表:
mysql外鍵約束怎么寫?
MySQL外鍵約束可以通過在創(chuàng)建表或修改表時添加FOREIGN KEY關(guān)鍵字來實現(xiàn)。語法為: FOREIGN KEY (列名) REFERENCES 目標(biāo)表(列名) ON DELETE CASCADE/SET NULL/RESTRICT。其中,列名為當(dāng)前表中的列名,目標(biāo)表為引用的外部表名,ON DELETE CASCADE/SET NULL/RESTRICT表示當(dāng)刪除外部表中的記錄時,當(dāng)前表中的記錄應(yīng)該如何處理。CASCADE表示級聯(lián)刪除,SET NULL表示將當(dāng)前表中相關(guān)記錄的外鍵值設(shè)為NULL,RESTRICT表示禁止刪除。
1 外鍵約束的寫法是在創(chuàng)建表時使用FOREIGN KEY關(guān)鍵字來指定外鍵約束。
2 外鍵約束的原因是為了保證數(shù)據(jù)的完整性和一致性。
通過外鍵約束,可以限制一個表中的某個列的值必須在另一個表的指定列中存在,從而確保數(shù)據(jù)的關(guān)聯(lián)性和正確性。
3 外鍵約束的是可以通過外鍵約束來實現(xiàn)表與表之間的關(guān)聯(lián)和連接,從而方便進(jìn)行數(shù)據(jù)查詢和操作。
外鍵約束還可以用于實現(xiàn)級聯(lián)操作,例如當(dāng)刪除或更新主表中的數(shù)據(jù)時,可以自動刪除或更新相關(guān)聯(lián)的從表中的數(shù)據(jù),避免數(shù)據(jù)不一致的問題。
因此,使用外鍵約束可以提高數(shù)據(jù)庫的數(shù)據(jù)質(zhì)量和操作效率。
mysql外鍵能引用不同數(shù)據(jù)庫中的字段嗎?
不,MySQL的外鍵約束只能引用同一數(shù)據(jù)庫中的字段。外鍵是用來建立表與表之間的關(guān)聯(lián)關(guān)系,確保數(shù)據(jù)的完整性和一致性。因此,外鍵約束必須引用同一數(shù)據(jù)庫中的字段,以確保數(shù)據(jù)的一致性和有效性。如果需要引用不同數(shù)據(jù)庫中的字段,可以考慮使用其他方法,如觸發(fā)器或應(yīng)用程序級別的邏輯來實現(xiàn)關(guān)聯(lián)關(guān)系。
到此,以上就是小編對于mysql外鍵設(shè)置語句的問題就介紹到這了,希望這3點解答對大家有用。
當(dāng)前文章:mysql外鍵怎么設(shè)置
分享路徑:http://www.5511xx.com/article/cdisepp.html


咨詢
建站咨詢
