Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
добрый день,
неожиданная проблема возникла при переносе базы данных от локального на удаленный сервер.
все вроде сделал правильно:
1. экспортировал базу на локальном сервере в файл my_db.sql
2. создал на удаленном севере новую базу данных с именем, например uXXXXXX_my_db (10 Mb)
3. на вкладке phpmyadmin Импорт (указано файл должен быть размером не более 32 Mb) выбрал файл my_db.sql и нажал OK
в результате через несколько минут сообщение об ошибке:
Ошибка
SQL-запрос:
-- -------------------------------------------------------- -- -- Структура таблицы `products` -- CREATE TABLE IF NOT EXISTS `products` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `category_id` int(11) unsigned NOT NULL DEFAULT '0', `manufacturer_id` int(11) unsigned NOT NULL DEFAULT '0', `country_id` int(11) unsigned NOT NULL DEFAULT '0', `ava` int(3) NOT NULL DEFAULT '0', `qty` int(12) NOT NULL DEFAULT '0', `sku` int(7) unsigned zerofill DEFAULT NULL, `supplier_reference` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `name` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `img_thumb` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `img_large` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `img_3d` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `movie` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `sh[...]
Ответ MySQL:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
в таблице `products` поля 30 и 31:
.......................
`date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`timeLeft` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
.........................
как можно исправить данную проблему?
спасибо за помощь
Неактивен
Как делали экспорт базы? Попробуйте сделать с помощью mysqldump
Неактивен
Но если правда два таких поля TIMESTAMP, то у одного нужно убрать DEFAULT CURRENT_TIMESTAMP
Неактивен
// Как делали экспорт базы? Попробуйте сделать с помощью mysqldump
вариант заливки на удаленный сервер masterhost.ru исключительно через панель phpmyadmin - Импорт.
// Но если правда два таких поля TIMESTAMP, то у одного нужно убрать DEFAULT CURRENT_TIMESTAMP
в таблице `products` поля 30 и 31 прописать так:
.......................
`date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`timeLeft` timestamp NOT NULL,
.........................
это единственный вариант или можно все таки со значениями по умолчанию в обоих полях?
спасибо за помощь
Отредактированно skolozhabskiy (06.08.2013 21:08:29)
Неактивен
насколько верным будет такое решение:
`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - когда добавлен товар
`timeLeft` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', - для обратного отсчета времени для countdown_time
спасибо за помощь
Неактивен
Вполне корректное решение
Неактивен
спасибо, в очередной раз очень приятно вести диалог с профессионалом.
Неактивен
а такое решение тоже верное?
`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`timeLeft` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
и что лучше предыдущее или это?
спасибо за помощь
Неактивен
Тоже корректное. Оба решения прекрасны, но они приводят к разному результату. Во втором случае любой апдейт строчки исправит date_added на текущую. Если под date_added подразумевается дата добавления строчки, а не последнего обновления, то нужно использовать первый вариант.
Неактивен
еще раз спасибо за разъяснения.
Неактивен
Страниц: 1