我在mysql中try 过:

mysql> alter table region drop column country_id;

得到这个:

ERROR 1025 (HY000): Error on rename of './product/#sql-14ae_81' to
'./product/region' (errno: 150)

有什么 idea 吗?外键的东西?

推荐答案

如果表使用InnoDB引擎,通常会出现此错误.在这种情况下,必须删除外键,然后执行alter table并删除列.

但棘手的是,不能使用列名删除外键,而是必须找到用于索引它的名称.要找到该选项,请执行以下 Select :

显示创建表区域;

这应该会显示索引的名称,如下所示:

限制region_ibfk_1 foreign

现在只需发布一个:

alter table region drop外键

最后是一个:

alter table region drop列

你可以走了!

Mysql相关问答推荐

MySQL-如何检测时间戳中的一天

MySQL中的where语句会 destruct 全外连接.

生成直到 10 的平方数序列

在 MySQL 中使用非空条件 LAG() 函数

0000-00-00 00:00:00 表中的日期设置为 NOT NULL

最后一个字母 '%n' 的 mysql SELECT 字符串不起作用

如何在 MYSQL 中使用多个表进行插值

巨大的未分区 MySQL 表问题

进行 MySQL COUNT 查询

如何在 MySQL 中删除具有 2 列作为复合主键的多行?

MySql 以秒为单位的两个时间戳之间的差异?

在 spring-boot jpa hibernate 中 >4<24 后与 Db 的连接终止

在 MySQL 中重命名外键列

MySQL如何为数据库中的所有表生成DDL

MySQL ORDER BY rand(),名称为 ASC

在 Yii2 中执行原始 SQL 查询?

MySQL错误 1005 (HY000): 无法创建表 'foo.#sql-12c_4' (errno: 150)

将 JavaScript 到日期对象转换为 MySQL 日期格式 (YYYY-MM-DD)

在 MySQL 中存储 IPv6 地址

带有 LIKE 运算符的 Select 语句中的 MySQL case