2009-07-28 103 views
3

我可能要麼誤解了如何使用上的重複KEY語法,或者我的數據庫結構需要做一些工作,但在這裏不用。MySQL的INSERT/UPDATE重複鍵

我有一個表(預訂-甲基)其表示與另一個表(預訂)相關聯的元數據,在登記表的不同行可以或可以不具有與它們在其他表中相關聯的特定元數據。

的預約 - 間表有以下的列,meta_id(主鍵),booking_id,鍵和值。

從我的理解,使用ON DUPLICATE KEY我需要知道在這種情況下是meta_id,通常情況並非如此,我試圖簡單地推動一個鍵,值對使用booking_id,所以如果特定的密鑰存在,那麼它的替換將被插入。

目前,我有一個單獨的查詢,儘量選擇該行,如果找到,那麼我更新,如果沒有,那麼它的INSERT。

是否有這樣做在一個查詢中插入/更新,而無需使用對重複KEY或有我錯過了這一個一招的方法嗎?

回答

6

如果可能,我會完全刪除meta_id列,並將booking_idkey轉換爲複合主鍵。這將節省您的桌面空間,允許使用ON DUPLICATE KEY,並且一般來說更乾淨。

+1

謝謝,這是完美的,我不知道爲什麼,但我一直在告訴自己,我需要的meta_id,細想它無處使用! – Duncan 2009-07-28 22:18:05