2013-10-15 43 views
0

我的表格由多列組成,其中第一列爲PK AI ID,另一列爲唯一TIME。有兩種插入方式可能具有相同的TIME值。我想要插入它們,並通過遞增它,調用NOW()或以任何其他可能的方式更改第二個INSERT中的值TIME。在一個MySQL查詢中可能嗎?INSERT ... ON DUPLICATE KEY更改重複值並插入

+1

爲什麼不去除'時間'上的'唯一'約束?看來你想允許重複。 –

+0

只有使用觸發器 – Emyl

+0

@ypercube才能做到這一點,'TIME'是查詢開始運行的時間,即使它在ms中,有兩次實例一次可以運行。我想在另一個查詢中使用這個列,並且保持它的唯一性是很好的,但是這樣做似乎是不可能的。 – kfinto

回答

0

這不能在單個查詢中完成,因爲ON DUPLICATE KEY UPDATE只會更新現有的行。它不會影響新插入的行。

一種可能的行動方式是執行INSERT ... ON DUPLICATE KEY UPDATE查詢並檢查受影響的行以確定是否存在插入或更新。如果有更新,只需再次插入即可更換時間。如果在timeID之間存在搭配(相對於只需要記錄時間),這將不起作用。

+0

如果我更新它,我將丟失存儲在此行另一列中的數據。 – kfinto

相關問題