在MySQL中更新TimeStamp字段慢速查询

时间:2011-06-27 03:35:22

标签: mysql sql

我的表结构

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字段未自动更新]。

1 个答案:

答案 0 :(得分:2)

您不应该更新timestamp列:时间戳列是automatically updated到当前时间更新行

如果要在mysql中使用可更新的“timestamp”列,请使用datetime数据类型。