SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.08.2013 19:55:51

skolozhabskiy
Участник
Зарегистрирован: 14.08.2011
Сообщений: 24

Ошибка при переносе базы данных от локального на удаленный сервер

добрый день,

неожиданная проблема возникла при переносе базы данных от локального на удаленный сервер.
все вроде сделал правильно:

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,
.........................

как можно исправить данную проблему?

спасибо за помощь

Неактивен

 

#2 06.08.2013 20:48:05

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка при переносе базы данных от локального на удаленный сервер

Как делали экспорт базы? Попробуйте сделать с помощью mysqldump

Неактивен

 

#3 06.08.2013 20:48:51

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка при переносе базы данных от локального на удаленный сервер

Но если правда два таких поля TIMESTAMP, то у одного нужно убрать DEFAULT CURRENT_TIMESTAMP

Неактивен

 

#4 06.08.2013 21:08:03

skolozhabskiy
Участник
Зарегистрирован: 14.08.2011
Сообщений: 24

Re: Ошибка при переносе базы данных от локального на удаленный сервер

// Как делали экспорт базы? Попробуйте сделать с помощью 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)

Неактивен

 

#5 06.08.2013 22:07:56

skolozhabskiy
Участник
Зарегистрирован: 14.08.2011
Сообщений: 24

Re: Ошибка при переносе базы данных от локального на удаленный сервер

насколько верным будет такое решение:

`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - когда добавлен товар
`timeLeft` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', - для обратного отсчета времени для countdown_time

спасибо за помощь

Неактивен

 

#6 06.08.2013 22:49:43

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка при переносе базы данных от локального на удаленный сервер

Вполне корректное решение

Неактивен

 

#7 06.08.2013 23:03:53

skolozhabskiy
Участник
Зарегистрирован: 14.08.2011
Сообщений: 24

Re: Ошибка при переносе базы данных от локального на удаленный сервер

спасибо, в очередной раз очень приятно вести диалог с профессионалом.

Неактивен

 

#8 06.08.2013 23:21:12

skolozhabskiy
Участник
Зарегистрирован: 14.08.2011
Сообщений: 24

Re: Ошибка при переносе базы данных от локального на удаленный сервер

а такое решение тоже верное?

`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`timeLeft` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',

и что лучше предыдущее или это?

спасибо за помощь

Неактивен

 

#9 06.08.2013 23:26:57

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка при переносе базы данных от локального на удаленный сервер

Тоже корректное. Оба решения прекрасны, но они приводят к разному результату. Во втором случае любой апдейт строчки исправит date_added на текущую. Если под date_added подразумевается дата добавления строчки, а не последнего обновления, то нужно использовать первый вариант.

Неактивен

 

#10 06.08.2013 23:28:27

skolozhabskiy
Участник
Зарегистрирован: 14.08.2011
Сообщений: 24

Re: Ошибка при переносе базы данных от локального на удаленный сервер

еще раз спасибо за разъяснения.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson