Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Timestamp не извлекается из дампа
 
 автор: Eugene77   (15.04.2012 в 06:24)   письмо автору
 
 

Ошибка

SQL-запрос:

CREATE TABLE bestpoints(
num int( 10 ) unsigned NOT NULL ,
expertName varchar( 60 ) NOT NULL ,
pairchar( 6 ) NOT NULL ,
createTime timestamp DEFAULT 'CURRENT_TIMESTAMP' NOT NULL ,
variationPlanKey int( 10 ) unsigned,
parent1 int( 10 ) unsigned,
parent2 int( 10 ) unsigned,
crc int( 11 ) ,
PRIMARY KEY ( num ) ,
KEY expertName( expertName ) ,
KEY variationPlanKey( variationPlanKey ) ,
KEY crc( crc ) ,
KEY parent1( parent1 ) ,
KEY parent2( parent2 ) 
);



Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( 6 ) NOT NULL ,
createTime timestamp DEFAULT 'CURRENT_TIMESTAMP' NOT NULL ,
var' at line 4

Из дампа таблицы не получается её востановить.
Я пробовал писать CURRENT_TIMESTAMP без кавычек, но ответ базы тот же - с кавычками...

  Ответить  
 
 автор: confirm   (15.04.2012 в 07:44)   письмо автору
 
   для: Eugene77   (15.04.2012 в 06:24)
 

pairchar( 6 ) NOT NULL - это что?

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 10:42)   письмо автору
 
   для: confirm   (15.04.2012 в 07:44)
 

>pairchar( 6 ) NOT NULL - это что?
Да, косяк.
Проглядел.
Дампер у меня, оказывается, кривой.

Спасибо!

Не попадался вам нормальный класс для дампа таблиц?

  Ответить  
 
 автор: confirm   (15.04.2012 в 10:48)   письмо автору
 
   для: Eugene77   (15.04.2012 в 10:42)
 

А чем не устраивает РМА? В последней его версии к тому же добавлено много новых возможностей.

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 11:44)   письмо автору
 
   для: confirm   (15.04.2012 в 10:48)
 

>А чем не устраивает РМА? В последней его версии к тому же добавлено много новых возможностей.
Мне надо периодически делать дамп некоторых таблиц в автоматическом режиме.
У РМА есть для этих целей API?

  Ответить  
 
 автор: confirm   (15.04.2012 в 12:06)   письмо автору
 
   для: Eugene77   (15.04.2012 в 11:44)
 

Нет, такого нет, но ведь можно и самому это "дописать". А убрав ошибку и кавычки из вашего дампа, не проблема и создать, и экспортировать.

-- phpMyAdmin SQL Dump
-- version 3.4.9
-- http://www.phpmyadmin.net
--
-- Хост: localhost:3306
-- Время создания: Апр 15 2012 г., 12:01
-- Версия сервера: 5.5.13
-- Версия PHP: 5.3.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

-- --------------------------------------------------------

--
-- Структура таблицы `bestpoints`
--

CREATE TABLE IF NOT EXISTS `bestpoints` (
  `num` int(10) unsigned NOT NULL,
  `expertName` varchar(60) NOT NULL,
  `pair` char(6) NOT NULL,
  `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `variationPlanKey` int(10) unsigned DEFAULT NULL,
  `parent1` int(10) unsigned DEFAULT NULL,
  `parent2` int(10) unsigned DEFAULT NULL,
  `crc` int(11) DEFAULT NULL,
  PRIMARY KEY (`num`),
  KEY `expertName` (`expertName`),
  KEY `variationPlanKey` (`variationPlanKey`),
  KEY `crc` (`crc`),
  KEY `parent1` (`parent1`),
  KEY `parent2` (`parent2`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 12:19)   письмо автору
 
   для: confirm   (15.04.2012 в 12:06)
 

>Нет, такого нет, но ведь можно и самому это "дописать". А убрав ошибку и кавычки из вашего дампа, не проблема и создать, и экспортировать.[code]


Кажется, самое простое решение в дампере добавить добавление апострофов на названия полей.
А API дописать может быть и долго. Я же не знаю какая у них там структура классов.
Если бы кто-то дописал - с удовольствием использовал бы, а самому пока некогда вникать

  Ответить  
 
 автор: confirm   (15.04.2012 в 12:22)   письмо автору
 
   для: Eugene77   (15.04.2012 в 12:19)
 

Если бы РМА, это бинарный исполняемый файл, тогда бы.... Ну ведь он же на РНР написан, а вызов экспорта, это ссылка, по которой видно, что вызывается, что передается в вызов. Остается немного разобраться и написать маленькую примочку.

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 12:33)   письмо автору
 
   для: confirm   (15.04.2012 в 12:22)
 

Кстати, ваш код работает только черз вкладку SQL в РМА

Без апострофов тоже, кстати, работает. А вы попробуйте свой код через импорт!
У меня не получается

  Ответить  
 
 автор: confirm   (15.04.2012 в 12:54)   письмо автору
 
   для: Eugene77   (15.04.2012 в 12:33)
 

И через импорт нет проблем. Да и какая разница сам ли вставлю это в запрос или РМА прочтет его из файла, по сути это одно и то же.

Апострофы, и всякое разное, это настройки конфигурации.

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 13:14)   письмо автору
 
   для: confirm   (15.04.2012 в 12:54)
 

Да, РМА свои дампы принимает, а вот чужой дамп не берёт, хотя ошибки в нём нет.
Видимо, он как-то обрабатывает файл дампа, прежде, чем передать его базе.

  Ответить  
 
 автор: confirm   (15.04.2012 в 13:19)   письмо автору
 
   для: Eugene77   (15.04.2012 в 13:14)
 

Ну это уже чисто предположение, что только свои. Не замечал за ним подобного, если, конечно, в самих файлах косяков откровенных нет.
Последний РМА экспортирует в CodeGen, CSV, CSV для MS Excel, Microsoft Word 2000, JSON, LaTeX, Таблица MediaWiki, Open Document Spreadsheet, OpenDocument текст, PDF, Массив PHP, SQL, Texy! текст, XML, YAML. И понятно, что не все из них будет понимать поля типа timestamp, а значит и при импорте (если таковой сделать) были бы сложности, но то, что корректно, пусть хоть африканцем писано - импортирует.

Прикрепите свой дамп-файл, проверим.

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 13:47)   письмо автору
 
   для: confirm   (15.04.2012 в 13:19)
 

>Ну это уже чисто предположение, что только свои. Не замечал за ним подобного, если, конечно, в самих файлах косяков откровенных нет.
>Последний РМА экспортирует в CodeGen, CSV, CSV для MS Excel, Microsoft Word 2000, JSON, LaTeX, Таблица MediaWiki, Open Document Spreadsheet, OpenDocument текст, PDF, Массив PHP, SQL, Texy! текст, XML, YAML. И понятно, что не все из них будет понимать поля типа timestamp, а значит и при импорте (если таковой сделать) были бы сложности, но то, что корректно, пусть хоть африканцем писано - экспортирует.
>
>Прикрепите свой дамп-файл, проверим.


Это про какую версию РМА вы говорите?

Проверять уже, кажется, не надо, у меня после удаления лишних кавычек вокруг таймстемпа тоже удался импорт.
Чуть позже разберусь что ещё было не так, возможно, где-то версия РМА другая стоит, возможо где-то не сохранил изменения в файле. Сейчас надо другие дела сделать, позже вернусь.

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

  Ответить  
 
 автор: confirm   (15.04.2012 в 13:50)   письмо автору
 
   для: Eugene77   (15.04.2012 в 13:47)
 

В дампе моем же указано - 3.4.9. Хотя последняя версия 3.5.0, но я пока ее еще не разворачивал.

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 18:10)   письмо автору
 
   для: confirm   (15.04.2012 в 13:50)
 

В общем, наладил. Всё работает.
Ошибка была не только в кавычках и апострофах, но ещё и в том, что дампер, который я прикрутил, при определённом стечении обстоятельств пишет дампы в хвост друг другу, вместо того, чтобы создавать новые.

Я не сразу выловил этот косяк, но теперь всё хорошо получается.

Спасибо!

Если вы смотрели, что там есть интересного в РМА, то ваше мнение про графику было бы любопытно узнать. Насколько она практична?
Удобно ли создавать графики таблиц?

  Ответить  
 
 автор: confirm   (15.04.2012 в 18:30)   письмо автору
21.5 Кб
 
   для: Eugene77   (15.04.2012 в 18:10)
 

О каких графиках речь? Можно создавать графики статистики. Есть окно дизайна таблиц (в приложении), если это интересует.

  Ответить  
 
 автор: Eugene77   (15.04.2012 в 11:41)   письмо автору
 
   для: confirm   (15.04.2012 в 07:44)
 

>pairchar( 6 ) NOT NULL - это что?

Нет, в дампе всё правильно:
pair  char( 6 ) NOT NULL 

Более того, в сообщении об ошибке (которую выдаёт РМА)
char
подсвечен как ключевое слово MySQL
(Поэтому я не заметил ошибку)
Это только при копировании выяснилось, что пробел исчезает при импорте.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования