我的表结构
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 :(得分:2)
您不应该更新timestamp
列:时间戳列是automatically updated到当前时间更新行。
如果要在mysql中使用可更新的“timestamp”列,请使用datetime
数据类型。