2012-08-31 80 views
0

的時候可以說我進入這樣一個記錄如何防止時間戳字段,以更新它的值更新記錄

"insert into table (value,time) VALUES ('4',NOW())" 

這就是我如何更新值

"update table set value = '5' WHERE id = '1'" 

的問題是,在最後一個查詢中,時間值再次用current_timestamp更新,所以時間錯了。

我該如何預防? (我想時間的值保持在CURRENT_TIMESTAMP被插入時,沒有更新)

PD:我試圖使用sqlBuddy行刪除值CURRENT_TIMESTAMP,但它被再一次應用,就像如果沒有變化,其中保存..

+0

你嘗試創建'time'和'date'作爲一個字段類型? – jcho360

回答

7

您可以簡單地添加在該領域的當前值在更新這樣的查詢:

update table set value = '5', timestamp_value = timestamp_value WHERE id = '1' 
+0

我不知道它是否是最好的解決方案,但在這種情況下對我來說最簡單。謝謝! –

0

只需將字段設置爲默認值爲CURRENT_TIMESTAMP的DateTime字段即可。所以它將在創建新記錄時設置,但只在需要時更新。

+1

這會改變值的格式嗎? –

+0

要更改表格,創建一個新的列time2,它們都將具有當前日期。然後將以前的時間值複製到time2,然後刪除時間列,然後將time2重命名爲time。 – bokan

0

你應該有默認值設置爲CURRENT_TIMESTAMP

CREATE TABLE t1 (
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
); 

這應該減輕你的痛苦。

相關問題