在 Xampp/phpmyadmin 中创建外键的问题

Posted

技术标签:

【中文标题】在 Xampp/phpmyadmin 中创建外键的问题【英文标题】:Issues creating foreign key in Xampp/phpmyadmin 【发布时间】:2012-08-16 16:48:58 【问题描述】:

这是我的一段代码..

ALTER TABLE ADDRESS
ADD CONSTRAINT ADDRESS_PK PRIMARY KEY(ID),
ADD CONSTRAINT ADDRESS_FK FOREIGN KEY (ID) REFERENCES  CUSTOMER (ID)

我在 SQL YoG 中创建了约束,但在 xampp 中它显示了一些问题。任何建议

【问题讨论】:

如果ID是唯一的,为什么要在这个字段上加FK?外键采用多个值。 @Devart 等等……什么?所有外键必须被定义为引用一个唯一的记录。地址必须始终与客户具有一对一的关系。另一方面,客户可以通过多个地址引用,因此是 m 对 1 关系。这让我想起... 给定的示例('FOREIGN KEY (ID)',其中 ID 是唯一的)假设一对一关系,其中一位客户有一个地址。 【参考方案1】:

外键清单:

两个表都必须是 InnoDB;最近(mysql 5.5.5)开始默认交付 InnoDB; 必须用相同的数据类型定义两列 包括长度; 包括UNSIGNED 限定符; 引用的键必须是UNIQUE; 引用的键不能是NULL-able;

【讨论】:

一切都很好。仍然是同样的错误。我需要给 engine=InnoDB ???因为它显示Can't create table 'calsoft.#sql-7d0_30c' (errno: 150) (<a href="server_engines.php?engine=InnoDB&page=Status&token=e86ba837afbc681c0928b72b4ab7fd35">Details...</a>) 这两个表应该已经是 InnoDB,如果它们不是,那么正确的语法将被忽略,不会触发错误。 最后我从父表中删除了 id 并创建了新的。现在它的工作感谢您的帮助。我投票赞成你的回应:) 干杯

以上是关于在 Xampp/phpmyadmin 中创建外键的问题的主要内容,如果未能解决你的问题,请参考以下文章

在交叉引用表中创建具有两个外键的 MySQL 表

在 MySQL 中创建外键

在 Mongoose 中创建外键关系

XAMPP phpmyadmin 在处理请求时总是显示错误

无法在PhpStorm中创建外键

在 MySQL 中创建外键会产生错误: