例 1
为了展现表与表之间的外键关系,本例在 test_db 数据库中创建一个部门表 tb_dept1 , 表结构如下表所示 。
创建 tb_dept1 的 SQL 语句和运行结果如下所示 。
1
2
3
4
5
6
7
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 语句和运行结果如下所示 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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日期如何转字符串
【mysql数据库】第三章解读:服务器性能剖析(上)
mysql case when的用法是什么
mysql关闭后自动重启怎么办
mysql精讲之二:dml数据操作语句
浅析mysql中concat以及group_concat的使用
mysql如何来创建表
mysql怎么清空数据表数据
mysql安装配置jdbc和基础学习
mysql怎么加入一个数据库mysql外键约束怎么建?
mysql在建表时添加外键约束-- 添加外键约束
CREATE TABLE stu(
sid INT PRIMARY KEY,
NAME VARCHAR(50) NOT NULL
);
-- 添加外键约束方式一
CREATE TABLE score1(
score DOUBLE,
sid INT,
CONSTRAINT fk_stu_score1_sid FOREIGN KEY(sid) REFERENCES stu(sid)
);
-- 添加外键约束方式二(若表已存在,可用这种)
CREATE TABLE score1(
score DOUBLE,
sid INT
);
ALTER TABLE score1 ADD CONSTRAINT fk_sid FOREIGN KEY(sid) REFERENCES stu(sid)
mysql外键约束怎么建的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql外键约束语句、mysql外键约束怎么建的信息别忘了在本站进行查找喔 。
推荐阅读
- 十堰网站制作,十堰网页定制
- 路由器中继没有密码怎么办,路由器中继可以设置密码吗
- html5背景音乐自动播放谷歌,html5背景音乐自动播放谷歌怎么关闭
- 冠军联赛虎牙直播时间,虎牙直播王者荣耀世界冠军杯
- linux命令搜索引擎 linux ?搜索
- html5点击图片弹出大图,html点击图片
- 桌面拼拼搭搭游戏教案,桌面拼搭活动教案
- 平板安卓与苹果哪个好些,平板安卓与苹果哪个好些呢
- linuxcure命令 linux @命令