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)
  注意:在为已经创建好的数据表添加外键约束时,要确保添加外键约束的列的值全部来源于主键列,并且外键列不能为空。

dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。