Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > MySQL: как получить дату модификации из ячейки БД


Автор: AlexPh 28.3.2009, 22:50
Я начинающий web разработчик и меня интересует следующий вопрос. 
Возможно ли, в принципе, узнать время последней модификации данных в конкретной ячейке таблицы MySQL?

Автор: ksnk 28.3.2009, 23:08
Нужно добавить пару полей с типом TIMESTAMP. http://www.mysql.ru/docs/man/DATETIME.html
Цитата

Тип столбца TIMESTAMP обеспечивает тип представления данных, который можно использовать для автоматической записи текущих даты и времени при выполнении операций INSERT или UPDATE. При наличии нескольких столбцов типа TIMESTAMP только первый из них обновляется автоматически.

Автоматическое обновление первого столбца с типом TIMESTAMP происходит при выполнении любого из следующих условий:

Столбец не указан явно в команде INSERT или LOAD DATA INFILE.
Столбец не указан явно в команде UPDATE, и при этом изменяется величина в некотором другом столбце (следует отметить, что команда UPDATE, устанавливающая столбец в то же самое значение, которое было до выполнения команды, не вызовет обновления столбца TIMESTAMP, поскольку в целях повышения производительности MySQL игнорирует подобные обновления при установке столбца в его текущее значение).
Величина в столбце TIMESTAMP явно установлена в NULL.




Автор: AlexPh 29.3.2009, 00:26
Не совсем понял когда (при изменении данных в каком из полей) будет меняться значение в поле с типом TIMESTAMP если в таблице например уже есть несколько полей.

Автор: ksnk 29.3.2009, 02:01
Код

CREATE TABLE  `еее` (
 `id` INT NOT NULL AUTO_INCREMENT ,
 `value` VARCHAR( 255 ) NOT NULL ,
 `changed` TIMESTAMP NOT NULL ,
 `created` TIMESTAMP NOT NULL ,
PRIMARY KEY (  `id` )
);

при выполнении запроса
Код

INSERT INTO  `еее` ( `value`,`created` ) 
VALUES ('111111111111111',NULL);

в обоих полях `changed` и `created` будет текущая дата. Вместо NULL сейчас рекомендуется использовать NOW()

при выполнении запроса
Код

UPDATE `еее` set value='2222222222222' where `id`=1;

в поле `changed` будет текущая дата.


Автор: AlexPh 29.3.2009, 04:35
Всё понятно, спасибо за помощь.
Что мне нужно было узнал и реализовал только что.
Ещё раз, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)