2014-07-19 135 views
0

兩個表具有相同的結構:插入插入重複鍵更新當前時間戳

Url: unique key 
date: current time stamp 
projectname: text column 

這裏是SQL命令我試圖運行:

INSERT INTO urldup (url, date, projectname) 
Select url, date, projectname 
From sample_temp s1 
ON Duplicate key update date=s1.date 

當有重複URL的我想要將日期列更新爲嘗試插入的日期。

我可以在上面的查詢中插入非重複項,但是如果有重複匹配則不能更新行日期。

感謝

回答

0

爲了on duplicate key update工作,你必須有一個獨特的密鑰。在url創建唯一索引:

create unique index sampletemp_url on sample_temp(url) 

然後,當您嘗試插入重複,日期將被更新。

然後,您的聲明將日期設置爲日期已經在記錄中。你想使用now(),而不是:

INSERT INTO urldup (url, date, projectname) 
    Select url, date, projectname 
    From sample_temp s1 
    ON Duplicate key update date = now(); 
+0

我聲明,網址是一個獨特的關鍵。 –

+0

儘管url列設置爲唯一,但它仍不會更新時間戳。 –