mysql怎么增加外键


当前第2页 返回上一页

1

2

ALTER TABLE <数据表名> ADD CONSTRAINT <外键名>

FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

例 2

修改数据表 tb_emp2,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联,SQL 语句和运行结果如下所示。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

mysql> ALTER TABLE tb_emp2

    -> ADD CONSTRAINT fk_tb_dept1

    -> FOREIGN KEY(deptId)

    -> REFERENCES tb_dept1(id);

Query OK, 0 rows affected (1.38 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE tb_emp2\G

*************************** 1. row ***************************

       Table: tb_emp2

Create Table: CREATE TABLE `tb_emp2` (

  `id` int(11) NOT NULL,

  `name` varchar(30) DEFAULT NULL,

  `deptId` int(11) DEFAULT NULL,

  `salary` float DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `fk_tb_dept1` (`deptId`),

  CONSTRAINT `fk_tb_dept1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312

1 row in set (0.12 sec)

注意:在为已经创建好的数据表添加外键约束时,要确保添加外键约束的列的值全部来源于主键列,并且外键列不能为空。

删除外键约束

当一个表中不需要外键约束时,就需要从表中将其删除。外键一旦删除,就会解除主表和从表间的关联关系。

删除外键约束的语法格式如下所示:

1

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

例 3

删除数据表 tb_emp2 中的外键约束 fk_tb_dept1,SQL 语句和运行结果如下所示。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

mysql> ALTER TABLE tb_emp2

    -> DROP FOREIGN KEY fk_tb_dept1;

Query OK, 0 rows affected (0.19 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE tb_emp2\G

*************************** 1. row ***************************

       Table: tb_emp2

Create Table: CREATE TABLE `tb_emp2` (

  `id` int(11) NOT NULL,

  `name` varchar(30) DEFAULT NULL,

  `deptId` int(11) DEFAULT NULL,

  `salary` float DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `fk_tb_dept1` (`deptId`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312

1 row in set (0.00 sec)

可以看到,tb_emp2 中已经不存在 FOREIGN KEY,原有的名称为 fk_emp_dept 的外键约束删除成功。

以上就是mysql怎么增加外键的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql主键是什么?

如何在phpmyadmin中修改mysql密码

centos 6.5下 mysql-community-server. 5.7.18-1.el6安装

decimal是什么类型

mac上mysql怎么卸载不了

掌握四大mysql知识点,就可吊打面试官!

如何使用navicat连接mysql数据库?

mysql如何插入多条数据?

mysql能装两个吗?

三分钟带你了解mysql数据类型

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...