2011-06-27 93 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