• 技术文章 >数据库 >mysql教程

    mysql怎么增加外键约束

    青灯夜游青灯夜游2021-12-28 09:10:06原创215

    mysql中可用“ALTER TABLE”语句和“FOREIGN KEY”关键字增加外键,语法“ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 主表名 (列名);”。

    本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

    MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

    外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

    定义外键时,需要遵守下列规则:

    mysql给表增加外键约束

    外键约束可以在修改表时添加,但是添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。

    在修改数据表时添加外键约束的语法格式如下:

    ALTER TABLE <数据表名> ADD CONSTRAINT <外键名>
    FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

    示例

    修改数据表 tb_emp2,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联

    mysql> ALTER TABLE tb_emp2
        -> ADD CONSTRAINT fk_tb_dept1
        -> FOREIGN KEY(deptId)
        -> REFERENCES tb_dept1(id);
    Query OK, 0 rows affected (1.38 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    mysql> SHOW CREATE TABLE tb_emp2\G
    *************************** 1. row ***************************
           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)

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

    【相关推荐:mysql视频教程

    以上就是mysql怎么增加外键约束的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql 外键约束
    上一篇:mysql怎么将字符串转为数字 下一篇:值得收藏的MySql基础知识总结(SQL优化篇)
    PHP编程就业班

    相关文章推荐

    • mysql字符转换函数是什么• mysql怎样修改列属性• mysql怎样去除空格• mysql怎么求时间差• mysql怎么将字符串转为数字

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网