千家信息网

mysql建表时如何设置外键

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,mysql建表时如何设置外键?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql建表时设置外键的方法:在"CRE
千家信息网最后更新 2026年10月31日mysql建表时如何设置外键

mysql建表时如何设置外键?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

mysql建表时设置外键的方法:在"CREATE TABLE"语句中,通过"[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]"语句设置。

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

在创建表时设置外键约束

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

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]REFERENCES <主表名> 主键列1 [,主键列2,…]

示例

为了展现表与表之间的外键关系,本例在 test_db 数据库中创建一个部门表 tb_dept1,表结构如下表所示。

字段名称数据类型备注
idINT(11)部门编号
nameVARCHAR(22)部门名称
locationVARCHAR(22)部门位置

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

mysql> CREATE TABLE tb_dept1    -> (    -> id INT(11) PRIMARY KEY,    -> name VARCHAR(22) NOT NULL,    -> location VARCHAR(50)    -> );Query OK, 0 rows affected (0.37 sec)

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

mysql> CREATE TABLE tb_emp6    -> (    -> id INT(11) PRIMARY KEY,    -> name VARCHAR(25),    -> deptId INT(11),    -> salary FLOAT,    -> CONSTRAINT fk_emp_dept1    -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)    -> );Query OK, 0 rows affected (0.37 sec)mysql> DESC tb_emp6;+--------+-------------+------+-----+---------+-------+| Field  | Type        | Null | Key | Default | Extra |+--------+-------------+------+-----+---------+-------+| id     | int(11)     | NO   | PRI | NULL    |       || name   | varchar(25) | YES  |     | NULL    |       || deptId | int(11)     | YES  | MUL | NULL    |       || salary | float       | YES  |     | NULL    |       |+--------+-------------+------+-----+---------+-------+4 rows in set (1.33 sec)

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

注意:从表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致。例如,两者都是 INT 类型,或者都是 CHAR 类型。如果不满足这样的要求,在创建从表时,就会出现"ERROR 1005(HY000): Can't create table"错误。

感谢各位的阅读!看完上述内容,你们对mysql建表时如何设置外键大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

字段 语句 内容 名称 数据 类型 部门 关联 所在 文章 结果 问题 运行 特殊 一致 成功 两个 之间 位置 关键 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 河南云网互联网络科技有限公司 互联网与科技金融数据 科技创新互联网企业 天扬科技互联网广告 互联网科技股午盘股票涨跌 科技赋能互联网健康 互联网科技博主是什么意思 福建科技产业互联网发展 注册互联网科技公司经营范围大全 互联网科技人工智能实验室 畅思互联网科技 区块链结合互联网科技 无锡工业互联网科技有限公司 2021互联网科技公司排名 城市宝互联网科技有限公司 产业互联网科技服务公司 图游互联网科技 广州梦谷互联网科技有限公司领导 萌小萌互联网科技河南有限公司 互联网科技海报 北京路客互联网科技有限公司 贷财互联网科技 湖南洣水互联网科技有限公司扣款 农村开互联网科技讲堂 玉溪互联网科技怎么选 迪庆互联网科技招生 上海万顺科技互联网有限公司招聘 恒生科技指数 中概互联网 互联网科技对化妆品行业
0