前言
为啥我需要修改已经被外键约束的表?
有的时候,建表时考虑不够仔细,导致有的时候突然需要为一张表进行一些更改,如:增加一列属性;将主键设为自增属性等。
数据库处理这种东西时,不让你进行修改,因为这个操作违反了外键约束,破坏了数据库完整性。所以这个修改的行为会被DBMS(数据库管理系统)给阻止。
如何做?
那么我们必须修改怎么办?可以先取消外键,修改完后再加回来。当然这也是可以的,虽然比较费事。
mysql提供了一个方法,临时关闭外键约束,当修改完成之后再将外键约束加回来。
讲你需要的操作放在两个语句之间:
SET FOREIGN_KEY_CHECKS = 0;
/* DO WHAT YOU NEED HERE */
SET FOREIGN_KEY_CHECKS = 1;
1
2
3
4
5
举例
如下图所示,我需要为这列增加自增的属性,但是这列已经被其他表引为外键,所以直接修改会出错,系统会阻止你进行修改。
这时,我们先勾选自增,然后点击Apply。
增加刚才的两行
最后再次提交,便可以成功执行,而且之后外键约束依然可以使用。
---------------------
转载自:https://blog.csdn.net/jcq521045349/article/details/54313775