MySQL建表時(shí)如何設(shè)置外鍵?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供晉城網(wǎng)站建設(shè)、晉城做網(wǎng)站、晉城網(wǎng)站設(shè)計(jì)、晉城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、晉城企業(yè)網(wǎng)站模板建站服務(wù),10余年晉城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
mysql建表時(shí)設(shè)置外鍵的方法:在“CREATE TABLE”語句中,通過“[CONSTRAINT <外鍵名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主鍵列1 [,主鍵列2,…]”語句設(shè)置。
MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。
在創(chuàng)建表時(shí)設(shè)置外鍵約束
在 CREATE TABLE 語句中,通過 FOREIGN KEY 關(guān)鍵字來指定外鍵,具體的語法格式如下:
[CONSTRAINT <外鍵名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主鍵列1 [,主鍵列2,…]
示例
為了展現(xiàn)表與表之間的外鍵關(guān)系,本例在 test_db 數(shù)據(jù)庫中創(chuàng)建一個(gè)部門表 tb_dept1,表結(jié)構(gòu)如下表所示。
| 字段名稱 | 數(shù)據(jù)類型 | 備注 |
|---|---|---|
| id | INT(11) | 部門編號(hào) |
| name | VARCHAR(22) | 部門名稱 |
| location | VARCHAR(22) | 部門位置 |
創(chuàng)建 tb_dept1 的 SQL 語句和運(yùn)行結(jié)果如下所示。
mysql> CREATE TABLE tb_dept1
-> (
-> id INT(11) PRIMARY KEY,
-> name VARCHAR(22) NOT NULL,
-> location VARCHAR(50)
-> );
Query OK, 0 rows affected (0.37 sec)創(chuàng)建數(shù)據(jù)表 tb_emp6,并在表 tb_emp6 上創(chuàng)建外鍵約束,讓它的鍵 deptId 作為外鍵關(guān)聯(lián)到表 tb_dept1 的主鍵 id,SQL 語句和運(yùn)行結(jié)果如下所示。
mysql> CREATE TABLE tb_emp6
-> (
-> id INT(11) PRIMARY KEY,
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
-> CONSTRAINT fk_emp_dept1
-> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp6;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | MUL | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (1.33 sec)以上語句執(zhí)行成功之后,在表 tb_emp6 上添加了名稱為 fk_emp_dept1 的外鍵約束,外鍵名稱為 deptId,其依賴于表 tb_dept1 的主鍵 id。
注意:從表的外鍵關(guān)聯(lián)的必須是主表的主鍵,且主鍵和外鍵的數(shù)據(jù)類型必須一致。例如,兩者都是 INT 類型,或者都是 CHAR 類型。如果不滿足這樣的要求,在創(chuàng)建從表時(shí),就會(huì)出現(xiàn)“ERROR 1005(HY000): Can't create table”錯(cuò)誤。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)mysql建表時(shí)如何設(shè)置外鍵大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章名稱:mysql建表時(shí)如何設(shè)置外鍵
URL分享:http://chinadenli.net/article10/ppdpdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、Google、網(wǎng)站改版、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)