mysql创建表时设置外键约束的方法
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化
千家信息网最后更新 2025年11月11日mysql创建表时设置外键约束的方法
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
我们可以在创建表时设置外键约束:
在 CREATE TABLE 语句中,通过 FOREIGN KEY 关键字来指定外键,具体的语法格式如下:
[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]REFERENCES <主表名> 主键列1 [,主键列2,…]
举例:
现在在 test_db 数据库中创建一个部门表 tb_dept1,表结构如下图所示:
创建 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安全错误
数据库的锁怎样保障安全
软件开发版本计划时间轴图
tbc服务器不排队
通付盾 网络安全发布
零基础学网络安全运维
本地数据服务器搭建教程
数据库约束的命令
管理服务器违规
亚瑟服务器抖动
河北服务器散热片价格
浙江智能化软件开发供应
网络安全需要哪些设备
电信云服务器管理网址
上海网络服务器机柜高性价比之选
洛阳讯昂网络技术有限公司
查找数据库表中全部数据
郑州正规软件开发哪里好
如何查看主机数据库的各种信息
创业失败后的人 数据库
我的时候服务器身份验证
国内外最新网络安全发展动态
信息管理是软件开发吗
软件开发版本计划时间轴图
专业放心的语音聊天软件开发
服务器搭建客户管理系统
数据库utf8中文排序规则
网络安全的第一责任人
网上订餐系统数据库设计
九悦软件开发工作室照片
蒙古语文数据库
盐城多点控制视频系统服务器