mysql创建表时设置外键约束的方法
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
成都软件开发青春
数据库辅助表的作用
嘉定区第三方网络技术服务哪家好
西安戴尔服务器
星际蜗牛能当游戏服务器吗
莱芜pc软件开发定制
如何做好数据库销售
算法类软件开发
北京网络技术工程
邮件群发与服务器
中科网络技术研究
苏州服务器监控
网络安全hei板报图片
建筑工程网络技术讲解
服务器光盘修复工具
博山制造业管理软件开发
vf中删除指定数据库
思科网络技术培训班
互联网时代科技发展
力控报表没数据库
计算机应用与网络技术哪个好就业
不支持的odbc数据库
2018江苏网络安全竞赛
武强软件开发项目管理
甘孜网络技术销售价格
组态王数据库添加数据
网络安全就业方向及前景
怎么确保自己的服务器安全性
开展网络安全主题班会的班会总结
思科网络安全咨询