当前位置: 首页 > 面试题库 >

mysql错误1025(HY000):“ ./ foo”重命名错误(错误编号:150)是什么意思?

龙志勇
2023-03-14
问题内容

我在mysql中尝试过这个:

mysql> alter table region drop column country_id;

并得到了:

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

有任何想法吗?外键东西?


问题答案:

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

但是棘手的部分是您不能使用列名删除外键,而必须找到用于为其索引的名称。为此,请发出以下选择:

SHOW CREATE TABLE区域;

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

约束外region_ibfk_1键(country_id)参考 countryid)关于删除无作用更新无作用

现在只需发出:

修改表区域丢弃外键 region_ibfk_1;

最后是:

更改表区域放置列country_id;

而且你很好走!



 类似资料:
  • 问题内容: 因此,我试图将主键添加到数据库中的表之一。现在,它具有这样的主键: 其中user_id是外键。 我正在尝试将其更改为: 我在phpmyadmin中通过单击表结构视图中的主键图标来执行此操作。 这是我得到的错误: 它是带有InnoDB表引擎的MySQL数据库。 问题答案: 可能还有另一个带有外键的表,该表引用了您要更改的主键。 要找出导致错误的表,您可以运行,然后查看部分。

  • 问题内容: 尝试在mysql中创建表时出现错误。 有解决的技巧吗? 错误: 问题答案: 查看有关外键约束的MySQL手册: 如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件,MySQL将返回错误号1005,并在错误消息中引用错误150。 一些想法: 最好删除表,并使用格式正确的语法对其进行新建

  • 问题内容: 我当时正在数据库中创建一些表,但是每次我以errno 150结束有关外键的工作时。首先,这是我创建表的代码: 这些是我得到的错误: 我跑了,给出了更详细的错误描述: 我在StackOverflow和其他在线位置上进行了搜索- 在这里找到了一篇有用的博客文章,其中提供了有关如何解决此错误的指针 -但我无法弄清楚出了什么问题。任何帮助,将不胜感激! 问题答案: 您应该将car_id设置为汽

  • 问题内容: 我正在用MySQL Workbench做一个小型数据库。我有一个名为“ Immobili”的主表,它具有由四列组成的主键:(Comune,Via,Civico,Immobile)。 现在,我还有其他三个表,它们具有相同的主键(Comune,Via,Civico,Immobile),但是这些字段也引用了表Immobili。 第一个问题:我可以同时创建主键还是外键吗? 第二个问题:当我尝试

  • 问题内容: 当我执行以下两个查询时(我将它们简化为绝对必要): 我收到以下错误:错误1005(HY000):无法创建表’./test/bar.frm’(errno:150) 我的错误在哪里?半个小时盯着我看,我还没找到他。 问题答案: 来自约束 如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件

  • 问题内容: 我正在尝试导入.sql文件及其在创建表时失败。 这是失败的查询: 我从同一数据库中导出了.sql,删除了所有表,现在我试图导入它,为什么会失败? MySQL:无法建立表格’./dbname/data.frm’(错误号:150) 问题答案: 从MySQL-外键约束文档: 如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引