[英]How to have a distinct Primary Key based off of 2 Foreign Keys
所以我在MySQL中有一个表,其中有行Date
, Username
和Hours
。 我想要做的是基于另一个表中引用的Date
和Username
两个外键值生成主键
由于用户在某一天只能工作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.