Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2015, 21:27   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Как убрать изменение TIMESTAMP при любом обновлении данных

Ситуация:
Таблица создана в ней поле даты:
Код:
'data' TIMESTAMP
Заполнил таблицу:
Код:
CURRENT_TIMESTAMP
Теперь при любых действиях с записью поле даты изменяется на текущее

Но мне не нужно обновление 'data' при каждом обращении к записи.
Вообще не понимаю, как такое получилось ведь при создании не указано автообновление ('data' TIMESTAMP), а только при вставке вставляется текущая дата (CURRENT_TIMESTAMP).
Почему же она обновляется при каждом обращении?

Последний раз редактировалось Illusiony; 29.01.2015 в 21:42.
Illusiony вне форума Ответить с цитированием
Старый 29.01.2015, 21:45   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Покажите код, и весь код таблицы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.01.2015, 21:58   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Код:
$sql = mysqli_query($link,"CREATE  TABLE IF NOT EXISTS `bd_avtopick`.`register_3`  (
  `login` VARCHAR(8)NOT NULL ,
  `md5_password` CHAR(32)NOT NULL ,
  `email` VARCHAR(128) NOT NULL ,
  `status` TINYINT (1) NOT NULL ,
  `1k` SMALLINT UNSIGNED NOT NULL ,
  `2k` SMALLINT UNSIGNED NOT NULL ,
  `3k` SMALLINT UNSIGNED NOT NULL,
  `Nxoda` TINYINT NOT NULL ,
  `data` TIMESTAMP  ,
	PRIMARY KEY (`login`(8)),
	UNIQUE (`email`(128)))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci");
Заполнение там только последнее. Там запрос на INSERT сложный в цикле куча переменных, они для данного вопроса не нужны.
Код:
CURRENT_TIMESTAMP
Если изменяю любое поле в записи, то `data` обновляется на текущую.

Последний раз редактировалось Illusiony; 29.01.2015 в 22:01.
Illusiony вне форума Ответить с цитированием
Старый 29.01.2015, 22:07   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Возможно, для поля `data` таки установлено Extra-свойство ON UPDATE CURRENT_TIMESTAMP – это можно проверить, выполнив запрос SHOW CREATE TABLE `register_3`;
Andkorol вне форума Ответить с цитированием
Старый 29.01.2015, 22:11   #5
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

А почему все таблицы скриптом пхп создаются? вы что их постоянно создаете?
lomastr_ вне форума Ответить с цитированием
Старый 29.01.2015, 22:15   #6
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Возможно, для поля `data` таки установлено Extra-свойство ON UPDATE CURRENT_TIMESTAMP – это можно проверить, выполнив запрос SHOW CREATE TABLE `register_3`;
Код:
REATE TABLE `register_3` (
 `login` varchar(8) NOT NULL,
 `md5_password` char(32) NOT NULL,
 `email` varchar(128) NOT NULL,
 `status` tinyint(1) NOT NULL,
 `1k` smallint(5) unsigned NOT NULL,
 `2k` smallint(5) unsigned NOT NULL,
 `3k` smallint(5) unsigned NOT NULL,
 `Nxoda` tinyint(4) NOT NULL,
 `data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`login`),
 UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
Но почему такое ?:
Код:
`data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
При создании я не задавал таких свойств. Или я это при заполнении 'CURRENT_TIMESTAMP' делается(т.е изменяю свойства поля?)?
Можно этого избежать сразу при создании таблицы?

Последний раз редактировалось Illusiony; 29.01.2015 в 22:18.
Illusiony вне форума Ответить с цитированием
Старый 29.01.2015, 22:15   #7
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
А почему все таблицы скриптом пхп создаются? вы что их постоянно создаете?
Я тестирую, для этого часто приходится удалять создавать заново, обновлять и так далее.
Illusiony вне форума Ответить с цитированием
Старый 29.01.2015, 22:19   #8
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Удаление тестируете? о_О
lomastr_ вне форума Ответить с цитированием
Старый 29.01.2015, 22:26   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы, кстати, уверены, что вам Timestamp нужен, а не DateTime? Читали про их отличия?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.01.2015, 22:29   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Так подожди – у тебя в запросе совсем не указано дефолтное значение для поля `data`, указан только тип поля:
Цитата:
Сообщение от Illusiony Посмотреть сообщение
Код:
$sql = mysqli_query($link,"CREATE  TABLE IF NOT EXISTS `bd_avtopick`.`register_3`  (
  `login` VARCHAR(8)NOT NULL ,
  `md5_password` CHAR(32)NOT NULL ,
  `email` VARCHAR(128) NOT NULL ,
  `status` TINYINT (1) NOT NULL ,
  `1k` SMALLINT UNSIGNED NOT NULL ,
  `2k` SMALLINT UNSIGNED NOT NULL ,
  `3k` SMALLINT UNSIGNED NOT NULL,
  `Nxoda` TINYINT NOT NULL ,
  `data` TIMESTAMP  ,
	PRIMARY KEY (`login`(8)),
	UNIQUE (`email`(128)))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci");
Откуда там вдруг появляется CURRENT_TIMESTAMP ?
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать изображения при выводе из базы данных serrgggeee PHP 2 21.12.2014 20:42
проблема при обновлении данных из web falseflags Microsoft Office Excel 0 20.12.2012 12:32
Ошибка 1004 при обновлении данных из Access (VBA EXCEL) Kycaka Microsoft Office Excel 7 07.12.2012 10:30
Клик при обновлении Ziroxz JavaScript, Ajax 3 22.01.2011 20:38
Как убрать пробел между строчками при вводе данных в ячейке? pisani Microsoft Office Excel 2 20.04.2010 05:51