在 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&amp;page=Status&amp;token=e86ba837afbc681c0928b72b4ab7fd35">Details...</a>)
这两个表应该已经是 InnoDB,如果它们不是,那么正确的语法将被忽略,不会触发错误。
最后我从父表中删除了 id 并创建了新的。现在它的工作感谢您的帮助。我投票赞成你的回应:) 干杯以上是关于在 Xampp/phpmyadmin 中创建外键的问题的主要内容,如果未能解决你的问题,请参考以下文章