MySQL删除外键的命令(mysql中删除外键命令)

MySQL删除外键的命令及其使用

在MySQL中,我们经常需要创建外键来进行表与表之间的关联。但是有时候我们需要删除这些外键,例如在表结构调整中,需要删除旧的外键再重新添加新的外键。那么如何使用MySQL删除外键的命令呢?本文将为您介绍。

MySQL删除外键的语法

MySQL删除外键的语法与创建外键的语法类似,只需要将CREATE替换为ALTER即可。

以下是MySQL删除外键的语法:

ALTER TABLE 表名称 DROP FOREIGN KEY 外键名称;

其中,`表名称`指待删除外键的表名称,`外键名称`指待删除的外键名称。需要注意的是,我们需要在执行这个命令之前,确保该外键存在。

MySQL删除外键的示例

我们以一个外键约束查询表的例子来演示如何删除外键。

我们创建一个示例表:

CREATE TABLE persons (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(50),
age INT,
city VARCHAR(50),
country VARCHAR(50),
CONSTRNT fk_country FOREIGN KEY (country)
REFERENCES countries(name)
);

在上面的例子中,我们在`persons`表中创建了一个名为`fk_country`的外键,关联到了`countries`表中的`name`字段。

现在,我们可以通过以下命令查看该表的外键信息:

SHOW CREATE TABLE persons;

该命令将输出以下结果:

CREATE TABLE `persons` (
`id` int NOT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`country` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_country` (`country`),
CONSTRNT `fk_country` FOREIGN KEY (`country`) REFERENCES `countries` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900__ci

我们可以看到,在`persons`表中确实存在一个名为`fk_country`的外键。

现在,我们可以执行以下命令来删除该外键:

ALTER TABLE persons DROP FOREIGN KEY fk_country;

执行成功后,我们再次执行`SHOW CREATE TABLE persons;`命令,将得到以下结果:

CREATE TABLE `persons` (
`id` int NOT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`country` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_country` (`country`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900__ci

我们可以看到,`persons`表中不再存在`fk_country`外键。

总结

MySQL删除外键的命令是ALTER TABLE表名称 DROP FOREIGN KEY外键名称,其中,表名称指待删除外键的表名称,外键名称指待删除的外键名称。

在操作MySQL数据库时,我们可以使用该命令来删除不需要的外键,以达到优化表结构的目的。希望这篇文章能对您有所帮助。


数据运维技术 » MySQL删除外键的命令(mysql中删除外键命令)