2011-06-27 128 views
1

我的表結構的慢速查詢更新時間戳字段在MySQL

CREATE TABLE IF NOT EXISTS `login` (
    `eMail` varchar(50) NOT NULL, 
    `Password` tinytext NOT NULL, 
    `UID` int(9) unsigned NOT NULL AUTO_INCREMENT, 
    `Name` varchar(16) NOT NULL, 
    `Text` tinytext NOT NULL, 
    `OldText` tinytext NOT NULL, 
    `LastSeen` timestamp NULL DEFAULT NULL, 
    `SecurityQuestion` tinytext NOT NULL, 
    `SecurityAnswer` tinytext NOT NULL, 
    PRIMARY KEY (`UID`), 
    UNIQUE KEY `eMail` (`eMail`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 

當過我嘗試更新LastSeen它顯示爲慢速查詢[獲取登錄慢查詢日誌文件]
誰能告訴我怎麼了 ?

樣本SQL代碼[PHP]

$time = date("Y-m-d H:i:s"); 
UPDATE LOGIN set LastSeen=? WHERE UID=? 
mysqli_stmt_bind_param($stmt,"si",$time,$uid); 

Edit:
我需要的時間戳,因爲我想減去當前時間與該行的數據。默認情況下,Timestam會在每次更新時自動更新,但可以通過[我的表格中的LastSeen字段未自動更新]進行更改。

+0

你是否在運行與UID比較的更新? – leon

+0

你能告訴我們一個典型的查詢,你會更新時間戳嗎? – Vache

+0

我已經添加了一個SQL – Sourav

回答

2

只要您更新行,您不應該更新timestamp列:時間戳列爲automatically updated到當前時間。

如果您想在mysql中使用可更新的「timestamp」列,請使用datetime數據類型。

+0

我已編輯我的問題,請查看 – Sourav