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

Узнай цену своей работы

Формулировка задачи:

добрый день, неожиданная проблема возникла при переносе базы данных от локального на удаленный сервер. все вроде сделал правильно: 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, ......................... как можно исправить данную проблему? спасибо за помощь

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

textual
Листинг программы
DELIMITER |
CREATE TRIGGER `update_time` before update ON `products`
   NEW.timeLeft = NEW.date_added;
END
DELIMITER ;

Объяснение кода листинга программы

  1. Установка DELIMITER для избежания конфликтов с синтаксисом SQL
  2. Создание триггера с именем update_time
  3. Указание действия, которое должно быть выполнено при возникновении события (в данном случае, обновление таблицы products)
  4. Определение времени, которое должно быть установлено для поля timeLeft при обновлении записи
  5. Указание поля, для которого предназначен триггер (в данном случае, поле date_added)
  6. Завершение определения триггера и его сохранение в базе данных
  7. Восстановление стандартного DELIMITER для возможности работы с SQL-запросами без конфликтов

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы