我需要基本上做一個「插入如果不存在其他更新」類型的查詢,並且我讀取的所有內容告訴我去的方式是Insert into...On Duplicate Key Update。問題是,我的主鍵是一個自動增量值,我從不與之交互或跟蹤,我無法真正動態生成它以放入我的查詢中。對於不是主鍵的多個值的重複鍵更新
一個典型的行會:
ID| Project_ID | Location | Cost_Center_Category | Name | Number | Year | Q_1 |
1 | 200 | NUH | 1 |asfoi | 1098123|etc.
基本上唯一性(不是字面上的)的每一行附帶的組合PROJECT_ID,地點,Cost_Center_Category,姓名,號碼和年。如果全部相同,則會發生更新至Q_1
。
UPDATE Labour_Planning
SET $Q = $submit
WHERE Project_ID = $selected_project
AND Year = $selected_year
AND Cost_Center_Category = $CCC
AND Cost_Center_Name = '$CC'
AND Cost_Center_Number = '$CC_Number'
AND Location = '$location';
是的,我知道,SQL注入和所有這一切,我會做得更好。現在,我需要找出一種方法來基本上插入一行,如果任何上述列不同。這是可能的插入....在重複鍵?
我看到的每個示例都在插入語句中使用主鍵,在這種情況下這不是真的可行。
是的,它是可以用一個獨特的密鑰,但在我看來,你會更好地重組爲兩個表 – andrewtweber
'一式兩份'會觸發任何「唯一鍵」違規。它不僅僅是主鍵。 –