mysql中設(shè)置外鍵的語法 mysql怎么設(shè)置外鍵?
mysql怎么設(shè)置外鍵?外鍵的設(shè)計初衷是為了在數(shù)據(jù)庫端保證對邏輯上相關(guān)聯(lián)的表數(shù)據(jù)在操作上的一致性與完整性。優(yōu)點:精簡關(guān)聯(lián)數(shù)據(jù),減少數(shù)據(jù)冗余避免后期對大量冗余處理的額外運維操作。降低應(yīng)用代碼復(fù)雜性,減少
mysql怎么設(shè)置外鍵?
外鍵的設(shè)計初衷是為了在數(shù)據(jù)庫端保證對邏輯上相關(guān)聯(lián)的表數(shù)據(jù)在操作上的一致性與完整性。
優(yōu)點:
- 精簡關(guān)聯(lián)數(shù)據(jù),減少數(shù)據(jù)冗余避免后期對大量冗余處理的額外運維操作。
- 降低應(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)的更新等。
外鍵參照動作列表:
- CASCADE:級聯(lián),子表跟隨父表更新外鍵值
- SET NULL:子表更隨主表更新外鍵值為 NULL
- RESTRICT/ NO ACTION:默認(rèn),限制父表改動外鍵值
- SET DEFAULT:目前產(chǎn)生的效果和 RESTRICT 相同。
mysql怎么查看表是否設(shè)置了外鍵?
#查看數(shù)據(jù)庫所有表SELECT tba.TABLE_NAME FROM information_schema.TABLES tba WHERE tba.TABLE_SCHEMA= "你要查的數(shù)據(jù)庫名字"#查看某個庫中的一個表是哪些表的外鍵SELECT TABLE_NAME FROM KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME="FK_PRODUCT_ID" AND REFERENCED_TABLE_NAME ="表的名字"AND REFERENCED_TABLE_SCHEMA="表的的數(shù)據(jù)名字"
在MySQL中如何設(shè)置主鍵和外鍵?
工具/原料 電腦 MySQL 方法/步驟 設(shè)置主鍵:
1、通過終端進(jìn)入到mysql命令行工具。
2、通過use關(guān)鍵字進(jìn)行到目標(biāo)數(shù)據(jù)庫里。
3、如原表已有主鍵,先把原來的主鍵刪除掉,通過DROP PRIMARY KEY命令:ALTER TABLE `jingyan` DROP PRIMARY KEY。
4、主鍵已經(jīng)沒有了。
5、通過命令:ADD PRIMARY KEY來添加ALTER TABLE `jingyan` ADD PRIMARY KEY ( `id` ) 。
6、輸入后按下回車鍵即可看到 query ok執(zhí)行成功的字符。
7、回到數(shù)據(jù)庫的可視化工具,即可顯示現(xiàn)在的表在id列上添加了主鍵了。 設(shè)置外鍵: 1、創(chuàng)建好主從表。 2、選擇主表,點擊設(shè)計表,進(jìn)入到表設(shè)計界面。 3、點擊外鍵,進(jìn)入到外鍵設(shè)置界面。 4、先設(shè)置外鍵名稱和選擇主表的外鍵字段。 5、然后在設(shè)置外鍵字段對應(yīng)從表的數(shù)據(jù)庫、表名和字。 6、點擊保存就完成外鍵設(shè)置了。
mysql如何查看外鍵?
查看方式主要是通過第三方工具或者是sql語句,主要有以下三種方式1:使用Navicateformysql,打開數(shù)據(jù)庫、查看數(shù)據(jù)庫表、查看設(shè)計表、選擇外鍵選項卡,就可以查看外鍵2:使用sql語句showcreatetable表名這個命令可以查看表的所有信息,包括一些字段類型,字段的約束,外鍵,主鍵,索引,字符編碼等等。3:查看某個表或者某個列的外鍵信息selectTABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEfromKEY_COLUMN_USAGEwhereREFERENCED_TABLE_NAME="<table>"如果需要查看某一列上的外鍵關(guān)系,需要添加列的條件REFERENCED_COLUMN_NAME.xx=xx方法一比較直觀,方法三比較準(zhǔn)確!