MySQL删除外键约束(附带示例)

📁 365平台怎么增加赢的几率 📅 2025-08-13 17:42:05 👤 admin 👁️ 4355 ❤️ 330
MySQL删除外键约束(附带示例)

对于数据库中定义的外键,如果不再需要,可以将其删除。一旦删除外键,就会解除主表和从表间的关联关系。

MySQL 中删除外键的语法格式如下:

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

“外键约束名”指在定义表时 CONSTRAINT 关键字后面的参数,详细内容可参考:MySQL 外键约束的使用

【示例】删除数据表 tb_emp9 中的外键约束。

首先创建表 tb_emp9,创建外键 deptId 关联 tb_dept1 表的主键 id,SQL 语句如下:

CREATE TABLE tb_emp9

(

id INT PRIMARY KEY,

name VARCHAR(25),

deptId INT,

salary FLOAT,

CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id)

);

使用 SHOW CREATE TABLE 查看表 tb_emp9 的结构,结果如下:

mysql> SHOW CREATE TABLE tb_emp9 \G

*** 1. row ***

Table: tb_emp9

Create Table: CREATE TABLE `tb_emp9` (

`id` INT NOT NULL,

`name` varchar(25) DEFAULT NULL,

`deptId` INT DEFAULT NULL,

`salary` float DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `fk_emp_dept` (`deptId`),

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

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

可以看到,已经成功添加了表的外键,下面删除外键约束,SQL语句如下:

ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;

执行完毕之后,将删除表 tb_emp9 的外键约束。使用 SHOW CREATE TABLE 再次查看表 tb_emp9 结构,结果如下:

mysql> SHOW CREATE TABLE tb_emp9 \G

*** 1. row ***

Table: tb_emp9

Create Table: CREATE TABLE `tb_emp9` (

`id` INT NOT NULL,

`name` varchar(25) DEFAULT NULL,

`deptId` INT DEFAULT NULL,

`salary` float DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `fk_emp_dept` (`deptId`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

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

相关推荐