国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 星座| 绥芬河市| 息烽县| 札达县| 新晃| 和平区| 铁岭县| 濮阳市| 洪湖市| 深泽县| 宁城县| 保靖县| 遵义市| 昌江| 礼泉县| 和田县| 峨边| 壶关县| 洛南县| 梧州市| 莱州市| 常山县| 两当县| 龙泉市| 时尚| 金乡县| 五大连池市| 洛宁县| 平山县| 方正县| 专栏| 精河县| 宁城县| 泰来县| 遵化市| 韶关市| 焉耆| 玛纳斯县| 寿阳县| 江津市| 吉林市|