繁体   English   中英

如何基于2个外键来拥有不同的主键

[英]How to have a distinct Primary Key based off of 2 Foreign Keys

所以我在MySQL中有一个表,其中有行DateUsernameHours 我想要做的是基于另一个表中引用的DateUsername两个外键值生成主键

由于用户在某一天只能工作X个小时,但是显然可以工作许多天。 然后,当然有多个用户可以在同一天工作。 但是区别他们的是他们的用户名。 每个用户与众不同的是他们工作的日子。

我想要使​​用此生成的PK字段执行的操作是使用类似SQL查询

INSERT INTO Shift (`Date`, `Username`, `Hours`)
VALUES('$Date', '$username', 5) 
ON DUPLICATE Key UPDATE `Date` = '$today', `Username`= '$username', Hours= $TotalHr

我考虑过只使用PHP进行SQL查询以测试用户名和日期是否在表中,然后从那里进行插入或更新。 但这似乎是一个丑陋的工作,当然必须有一种方法来实现这一目标。

组合的主键也称为组合键。 具有这些键的示例表为:

CREATE TABLE Shift(
   Date DATETIME,
   Username VARCHAR(75),
   Hours INT(11),
   PRIMARY KEY (Date, Username)
) 

您当然也可以通过查询更改表。

ALTER TABLE Shift
ADD PRIMARY KEY (Date, Username)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM