我在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
)参考country
(id
)关于删除无作用更新无作用
现在只需发出:
修改表区域丢弃外键
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-外键约束文档: 如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引