当前位置: 首页 > 知识库问答 >
问题:

来自多个表的复合外键

潘宪
2023-03-14

我正在构建一个数据库的模式。我有下面两张表。。。

CREATE TABLE User(
userID INT AUTO_INCREMENT,
...
PRIMARY KEY(userID)
);

CREATE TABLE Tool(
toolID INT AUTO_INCREMENT,
...
PRIMARY KEY(toolID)
)

我想创建一个名为hasTool的表,它使用外键约束具有两个表的主键。然而,除此之外,我还想使这两个字段都成为新表hasTool的复合键。我尝试了以下方法,但似乎没有产生预期的行为:

CREATE TABLE gcHasCoordinates (
userID INT NOT NULL,
toolID INT NOT NULL,
PRIMARY KEY (userID , toolID ),
CONSTRAINT foreign_key_to_User FOREIGN KEY (userID) REFERENCES Coordinate(coordinateID) ,
CONSTRAINT foreign_key_to_Tool FOREIGN KEY (toolID ) REFERENCES Tool(toolID)
);

我想允许表允许多个实例的userID或工具ID,但不是两者,并表用户和工具上的现有值。

提前谢谢!

共有2个答案

米浩穰
2023-03-14

可能,您应该使用相同的数据类型INTINT NOT NULL是不同的类型

暨修洁
2023-03-14

问题是什么?

除了

CONSTRAINT foreign_key_to_Tool FOREIGN KEY (toolID ) REFERENCES Tool(toolID) ON DELETE CASCADE ON UPDATE CASCADE

您引用的表GeoCache而不是工具不正确。我想它应该会起作用。

编辑:来看看这个

 类似资料:
  • 问题内容: 如何从MySQL的多个表中选择COUNT(*)? 如: 编辑: 目标是返回此: 问题答案: 您可以通过使用子查询来实现,每个tableCount一个子查询:

  • 问题 如果我像下面的例子一样使用属性访问类型,我是否也必须为引用的FK定义getter和setter? 我不认为是这样,但Java EE6的官方文档是这样做的。 null

  • 问题内容: 我想添加代表其他表计数的列。 我有3张桌子。 留言内容 主题 星星_吉文 我要结束于: Topic_Review 因此,基本上我想在3列中附加唯一值的计数(每个主题中给定的星数,在主题中具有消息的唯一用户以及每个主题中的唯一消息数)。 我希望最终也能够过滤类别(在两列中均可见)。 此外,我最终希望按加入的人数进行排序。例如,我将要有一个按钮,该按钮按升序按“星数”排序,或按降序按“用户

  • 问题内容: 我想要一个带有来自同一表的2个外键的Django模型。这是一个事件表,其中有两列用于员工:“参与者”和“接收者”。但是我得到这个错误: 错误:一个或多个模型未通过验证:tasks.task:中间模型TaskEvent具有多个到Employee的外键,这是模棱两可的,不允许使用。 有没有更好的方法对此建模?谢谢 我想我要添加一张桌子。其中有两个记录,每个与之相关的两个雇员中的每个。有人知

  • 问题内容: class Match(Base): tablename = ‘matches’ 我需要编写一个查询,该查询将列和团队表连接在一起,以显示本地和客队的团队信息。 这返回 问题答案: 首先,您的代码不起作用的原因是因为SQLAlchemy不知道您是否要通过via或加入,因此您必须告诉它。此外,您需要加入两次,这使事情变得更加复杂。 使用以下命令可以更轻松地完成此操作: 并且将在相同的查询

  • 问题内容: 我有一个JSF数据表,它有三列,分别是:Work_Type_Desc,Project_Phase和Activity_Desc。这些列来自2个不同的数据库表,这两个表之间的关系是一对多的。 第一个表的名称为Work_Type。它具有1)Work_Type_Cd,2)Work_Type_Desc,3)Created_By_Name,4)Created_DT,5)Updated_By_Nam