簡體   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