mysql
2013-08-17 42 views 0 likes 
0

我有一列date_createdcurrent_time_stamp用於存儲行的創建日期。
但是,只要我將UPDATE應用於該行,即使我沒有向該列應用任何數據,也會刷新date_created當更新mysql表格行時,current_time_stamp也會更新

我該如何預防?

下面是代碼,我套用UPDATE

$query = "UPDATE `templates` SET `categoria_id`='$categoria', `title`='$title', `image`='$image', `code`='$code', `date_updated`='".date('Y-m-d H:i:s')."' WHERE `id`='{$id}' LIMIT 1"; 
if(mysqli_query($connection, $query)) { 
    echo "up_success"; 
} 
else { 
    echo "fail"; 
} 

回答

2

與這兩個DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP,列有它的默認值使用當前的時間戳,並且自動更新爲當前時間戳。

CREATE TABLE t1 (
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
); 

隨着既不DEFAULT CURRENT_TIMESTAMP也不ON UPDATE CURRENT_TIMESTAMP,它是一樣的同時指定DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP

CREATE TABLE t1 (
    ts TIMESTAMP 
); 

隨着DEFAULT子句但沒有ON UPDATE CURRENT_TIMESTAMP子句,列有給出的默認值,是不會自動更新爲當前的時間戳。

CREATE TABLE t1 (
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
); 
+0

就是這樣!謝謝。我刪除了'ON UPDATE CURRENT_TIMESTAMP',並將'CURRENT_TIMESTAMP' – CIRCLE

0

與A型柱每次CURRENT_TIMESTAMP自動更新應用成功更新了該行。

你最好重命名date_created到date_updated,並創建一個int類型的新列(用於在創建時存儲由time()在php中生成的unix時間戳)或其中一個datetime/date/time類型。

2

聽起來就像表創建時字段初始化爲自動更新。像下面這樣。

CREATE TABLE templates (
    date_created TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
    ... 
); 
0

對於表創建使用以下構造。如果未指定缺省值,則時間戳也會更新以更新任何列。

CREATE TABLE t1 (
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
); 

詳細here

相關問題