【问题标题】:Issues creating foreign key in Xampp/phpmyadmin在 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 是唯一的)假设一对一关系,其中一位客户有一个地址。

标签: java mysql phpmyadmin


【解决方案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 并创建了新的。现在它的工作感谢您的帮助。我投票赞成你的回应:) 干杯
猜你喜欢
  • 1970-01-01
  • 2013-09-07
  • 2015-01-18
  • 2016-10-03
  • 2023-03-08
  • 1970-01-01
  • 2018-08-14
  • 2011-06-13
  • 2014-11-19
相关资源
最近更新 更多