首页 >数据库 >mysql教程 >如何解决MySQL添加外键时出现外键约束错误?

如何解决MySQL添加外键时出现外键约束错误?

DDD
DDD原创
2024-11-30 15:58:14984浏览

How to Resolve MySQL Foreign Key Constraint Errors When Adding a Foreign Key?

修复 MySQL 表中的外键添加错误

问题:

您想要向现有表添加外键MySQL表却遇到以下情况错误:

***Error Code: 1005. Can't create table 'mytable.#sql-7fb1_7d3a' (errno: 150)***
***Error in foreign key constraint of table mytable.#sql-7fb1_7d3a:***
FOREIGN KEY (`Sprache`) REFERENCES `Sprache` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL:

解决方案:

要解决该错误,请确保您引用的表实际存在并且具有正确的列名称。该错误表明 Sprache 表不存在或没有名为 ID 的列。

修改后的查询:

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

附加说明:

  • 两个表(目录和 Sprache)都必须是InnoDB 且引用列具有相应的数据类型(INT(11) 和 NOT NULL)。
  • 在添加约束之前,katalog 表中的外键列(Sprache)不得包含任何 NULL 值。
  • Sprache 表中引用的列(本例中为 ID)应该是主列

一般外键添加语法:

ALTER TABLE <table_name>
ADD FOREIGN KEY (<column_name>)
REFERENCES <foreign_table_name>(<foreign_column_name>);

按照这些修订后的说明,您应该能够成功将外键添加到MySQL 中的目录表。

以上是如何解决MySQL添加外键时出现外键约束错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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