mysql创建表时设置外键约束的方法

  

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小,速度快,总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

我们可以在创建表时设置外键约束:

在CREATE TABLE语句中,通过外键关键字来指定外键,具体的语法格式如下:

[约束& lt;外键名祝辞)外键字段名[,字段名2,…)   引用& lt;主表名的在1(主键列,主键列2,…]

举例:

现在在test_db数据库中创建一个部门表tb_dept1,表结构如下图所示:

 mysql创建表时设置外键约束的方法

创建tb_dept1的SQL语句和运行结果如下所示。

mysql>创建表tb_dept1   →(   →INT id(11)主键,   →名字VARCHAR(22)不是零,   →位置VARCHAR (50)   →);   查询好,0行影响(0.37秒)

创建数据表tb_emp6,并在表tb_emp6上创建外键约束,让它的键deptId作为外键关联到表tb_dept1的主键id、SQL语句和运行结果如下所示。

mysql>创建表tb_emp6   →(   →INT id(11)主键,   →名字VARCHAR (25),   →deptId INT (11),   →工资浮动,   →约束fk_emp_dept1   →外键(deptId)引用tb_dept1 (id)   →);   查询好,0行影响(0.37秒)      mysql>DESC tb_emp6;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | |字段类型零额外默认关键| | | | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | | int id (11) | | PRI零| | |   | |名称varchar(25) |是| |零| |   | deptId | int(11) |是| MUL零| | |   零| | | |是的浮动工资| | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   4行集(1.33秒)

以上语句执行成功之后,在表tb_emp6上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id。

注意:从表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致。例如,两者都是INT类型,或者都是字符类型。如果不满足这样的要求,在创建从表时,就会出现“错误1005 (HY000):停下来# 39;t create table”错误。

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

mysql创建表时设置外键约束的方法