加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql如何删掉外键关系

发布时间:2023-06-08 14:04:25 所属栏目:MySql教程 来源:
导读:这篇“mysql如何删除外键关系”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇&ld
这篇“mysql如何删除外键关系”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql如何删除外键关系”文章吧。
 
在mysql中,可以利用ALTER TABLE语句配合DROP关键字来删除外键关系(约束),语法“ALTER TABLE 数据表名 DROP FOREIGN KEY 外键约束名;”;“ALTER TABLE”语句用于修改表(改变原有表的结构),而添加了“DROP FOREIGN KEY”语句后,修改功能就限制在删除外键关系(约束)上。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
 
外键关系(外键约束)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
 
外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西瓜,其它的水果都是不能购买的。
 
主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。
 
当一个表中不需要外键约束时,就需要从表中将其删除。外键一旦删除,就会解除主表和从表间的关联关系。
 
那么mysql怎么删除外键关系(约束)?
 
在mysql中,可以利用ALTER TABLE语句配合DROP关键字来删除外键关系(约束)。
 
删除外键约束的语法格式如下所示:
 
ALTER TABLE 数据表名 DROP FOREIGN KEY 外键约束名;
 
ALTER TABLE 语句用于改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。
 
DROP FOREIGN KEY语句用于删除外键关系
 
示例:
 
使用以下语句查看数据表 tb_emp2 的外键约束:
 
SHOW CREATE TABLE tb_emp2\G
 
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)
 
mysql如何删除外键关系
 
删除数据表 tb_emp2 中的外键约束 fk_tb_dept1
 
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;
 
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
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!