【问题标题】:Not able to create Simple Foreign key constraint -- is incorrectly formed [duplicate]无法创建简单外键约束——格式不正确[重复]
【发布时间】:2017-09-07 13:57:04
【问题描述】:

我创建了一个简单的用户表,其中包含用户 ID 和用户名(唯一)。

创建了另一个表单元,该表包含我想在用户表中记录用户名的 cratedby。我创建了一个外键字段。 createdby 在用户中使用用户名。它完成没有任何问题。

现在我创建了另一个表customers1,它也有一个字段 cratedby(用户名之一)。当我建立外键关系时,它会引发错误 - 外键约束的格式不正确。

任何表中都没有数据。为什么它的单位表的工作情况不在customers1表中。我正在上传 3 张图片。

请帮助...我阅读了类似的问题尝试了几个选项,但没有奏效。 3 Tables, HeidiSQL

【问题讨论】:

  • 这是一个常见问题解答。请标记您的 SQL。阅读它的官方文档和谷歌你的错误/问题/问题/desiderata的许多不同的措辞,而不仅仅是“几个”。用户表中的用户名可以为空吗?请阅读minimal reproducible example 并采取行动。请[对文本和表格使用文本,而不是图像和链接]。(meta.stackoverflow.com/a/285557/3404097)。

标签: foreign-keys relationship


【解决方案1】:

首先,不要使用用户名作为主键,而是使用用户 ID,因为用户名可能相似。

第二个 FOREIGN KEY 是一个表中的一个字段(或字段集合),它引用另一个表中的 PRIMARY KEY。在您的表中,用户 ID 是主键(上面带有黄色键图标),而不是用户名。

如果您可以使用控制台,请改用它。并执行以下操作

-> CREATE TABLE USERS(USERID INT PRIMARY KEY AUTO_INCREMENT, USERNAME VARCHAR(30));
-> CREATE TABLE UNIT (UNITID INT PRIMARY KEY, USERID INT,FOREIGN KEY (USERID) REFERENCES USERS (USERID));
-> CREATE TABLE CUSTOMER (CUSTOMERID INT PRIMARY KEY, USERID INT, FOREIGN KEY (USERID) REFERENCES USERS (USERID));

【讨论】:

  • 问题已解决,感谢您的建议。
  • 那么请将其标记为已回答。
猜你喜欢
  • 2019-01-05
  • 2020-10-23
  • 2020-07-05
  • 1970-01-01
  • 2022-01-25
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 2023-02-03
相关资源
最近更新 更多