首页 > 数据库 > MySQL > 正文

mysql如何添加外键约束

2024-07-24 12:34:06
字体:
来源:转载
供稿:网友
  MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
 
  外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。
 
  定义外键时,需要遵守下列规则:
 
  主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
  必须为主表定义主键。
  主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
  在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
  外键中列的数目必须和主表的主键中列的数目相同。
  外键中列的数据类型必须和主表主键中对应列的数据类型相同。
 
         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)
  注意:在为已经创建好的数据表添加外键约束时,要确保添加外键约束的列的值全部来源于主键列,并且外键列不能为空。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表