Обновление поля TimeStamp - медленный запрос в MySQL - PullRequest
1 голос
/ 27 июня 2011

Структура моего стола

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 Ответ

2 голосов
/ 27 июня 2011

Не следует обновлять столбец timestamp: столбцы отметок времени автоматически обновляются до текущего времени при каждом обновлении строки .

Если выхотите обновить обновляемый столбец "timestamp" в mysql, используйте тип данных datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...