首页 >数据库 >mysql教程 >为什么在向 MySQL 表添加外键时收到'错误代码:1005”?

为什么在向 MySQL 表添加外键时收到'错误代码:1005”?

Barbara Streisand
Barbara Streisand原创
2024-12-10 04:06:49839浏览

Why Am I Getting

对表中添加外键进行故障排除

尝试将外键添加到名为“katalog”的现有表时,可能会出现错误消息遇到:“错误代码:1005。无法创建表'mytable.#sql-7fb1_7d3a' (errno: 150)."

原因:

  • ALTER TABLE 语句中的语法错误: 提供的语法包含不正确的语法引用表 mytable.#sql-7fb1_7d3a 而不是katalog。
  • 对引用表的引用丢失或无效: 确保引用表(本例中为 Sprache)存在并且具有适当匹配的列(本例中为 ID)。
  • 表和引用列属性不兼容:验证外键列和引用列的数据类型和约束引用的列是兼容的。

解决方案:

  1. 更正 ALTER TABLE 语句中的语法以引用正确的表名称 katalog。
  2. 确保引用的表 Sprache 存在且具有与外键匹配的 ID 列约束。
  3. 验证外键列(本例中为 Sprache)的数据类型和约束是否与引用表中引用列(Sprache 中的 ID)的数据类型和约束相匹配。

示例:

要成功添加外键,请使用以下更正后的 ALTER TABLE声明:

ALTER TABLE katalog
ADD CONSTRAINT `fk_katalog_sprache`
FOREIGN KEY (`Sprache`)
REFERENCES `Sprache` (`ID`)
ON DELETE SET NULL
ON UPDATE SET NULL;

以上是为什么在向 MySQL 表添加外键时收到'错误代码:1005”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn