国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql如何添加外鍵約束

2024-07-24 12:34:06
字體:
供稿:網(wǎng)友
  MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。
 
  外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性。
 
  定義外鍵時(shí),需要遵守下列規(guī)則:
 
  主表必須已經(jīng)存在于數(shù)據(jù)庫中,或者是當(dāng)前正在創(chuàng)建的表。如果是后一種情況,則主表與從表是同一個(gè)表,這樣的表稱為自參照表,這種結(jié)構(gòu)稱為自參照完整性。
  必須為主表定義主鍵。
  主鍵不能包含空值,但允許在外鍵中出現(xiàn)空值。也就是說,只要外鍵的每個(gè)非空值出現(xiàn)在指定的主鍵中,這個(gè)外鍵的內(nèi)容就是正確的。
  在主表的表名后面指定列名或列名的組合。這個(gè)列或列的組合必須是主表的主鍵或候選鍵。
  外鍵中列的數(shù)目必須和主表的主鍵中列的數(shù)目相同。
  外鍵中列的數(shù)據(jù)類型必須和主表主鍵中對(duì)應(yīng)列的數(shù)據(jù)類型相同。
 
         Table: tb_emp2
  Create Table: CREATE TABLE `tb_emp2` (
    `id` int(11) NOT NULL,
    `name` varchar(30) DEFAULT NULL,
    `deptId` int(11) DEFAULT NULL,
    `salary` float DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `fk_tb_dept1` (`deptId`),
    CONSTRAINT `fk_tb_dept1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=gb2312
  1 row in set (0.12 sec)
  注意:在為已經(jīng)創(chuàng)建好的數(shù)據(jù)表添加外鍵約束時(shí),要確保添加外鍵約束的列的值全部來源于主鍵列,并且外鍵列不能為空。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳山县| 本溪| 临洮县| 巴彦淖尔市| 峨边| 顺平县| 邳州市| 广南县| 宁夏| 衡东县| 乐山市| 莆田市| 津南区| 芦山县| 蒙阴县| 冀州市| 哈尔滨市| 威远县| 奉新县| 内江市| 甘南县| 正宁县| 奎屯市| 益阳市| 搜索| 信丰县| 临清市| 石台县| 杭州市| 武汉市| 宜良县| 元江| 梁山县| 右玉县| 芷江| 金坛市| 项城市| 长宁县| 天津市| 科技| 双柏县|