我對SQL有點新,所以我希望這不會成爲一個愚蠢的問題。我想創建一個調度程序,其中表是這樣的:SQL - 更新或插入通過檢查兩列
event_id worker_id date shift_type
1 1 2014-01-01 Labour Day Shift
2 1 2014-01-02 Labour Night Shift
3 2 2014-01-01 Engineer Day Shift
4 2 2014-01-02 Engineer Night Shift
5 3 2014-01-01 Electrician Day Shift
6 3 2014-01-02 Electrician Day Shift
正如你所看到的,我對待每一個「轉變」作爲事件。當我插入數據庫時,我想要一種方法來檢查'worker_id'和'date'是否已存在於同一行下的表中,如果是這樣,則使用UPDATE而不是INSERT。請注意,'worker_id'或'date'都是唯一的,但是這兩者在一行中的組合是唯一的。
請參閱'REPLACE'語法。 – i486
只需在i486註釋中添加更多詳細信息,爲worker_id和日期字段設置一個唯一索引來強制唯一性,然後您可以使用「替換」而不是插入/更新,將所有檢查留給數據庫。 – ptrk
[MySQL'UPDATE ON DUPLICATE KEY'沒有唯一列?]的可能的重複?()(http://stackoverflow.com/questions/3180913/mysql-update-on-duplicate-key-without-a-unique-column) –