SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 22.10.2009 14:42:12

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

множество дампов в одну таблицу

если требуется с нескольких компов собрать дампы (таблицы X)
и слить их на один комп (условно - для анализа) в аналогичную пустую таблицу X, то значения айдишников (как ключевых полей) конечно может пересекаться. соответственно это может приводить к ошибке или дамп перестает заливаться..
подскажите, каким образом можно решить проблему одинаковых значений ключевых полей при попытке объединения данных?
каким-то образом может переиндексировать во время заливки или еще что?
спасибоsmile

Неактивен

 

#2 22.10.2009 22:01:59

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: множество дампов в одну таблицу

Попробуйте дампить их не в текстовые файлики, а в tab-separated (mysqldump --tab).
После этого при импортировании данных можно будет просто игнорировать колонку
с id (mysqlimport -c "@dummy, ...").

Неактивен

 

#3 23.10.2009 09:54:36

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

Re: множество дампов в одну таблицу

дополнительно еще почитал манул, внимание остановилось на параметрах --replace, --ignore,
но в таком случае это приведет к потере/перетиранию каких-либо строк при импорте

попробовал игнорирование поля, то что вы предложили, помогло.
айдишники сами заполняются.
благодарю!

Неактивен

 

#4 23.10.2009 11:23:23

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

Re: множество дампов в одну таблицу

а если у нас, к примеру, имеются базы с именами
db_2007
db_2008
db_2009
и т.п...
можно ли как-то при помощи регулярных выражений выделить все базы с именем db_ и сделать их дамп?
если не затруднит, рабочий пример приведитеsmile

Неактивен

 

#5 23.10.2009 16:35:18

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: множество дампов в одну таблицу

mysql -NBe "SHOW DATABASES" | egrep '^db_' | xargs mysqldump -B

Ну или любое другое регулярное выражение. Или если Вас устроят wildcards, то можно
делать SHOW DATABASES LIKE 'db_%'.

Неактивен

 

#6 23.10.2009 18:42:23

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

Re: множество дампов в одну таблицу

большое спасибоsmile буду пробоватьsmile

Неактивен

 

#7 28.10.2009 07:48:30

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

Re: множество дампов в одну таблицу

возникли еще кой-какие вопросы.
- mysqlimport кушает файл только с названием нужной таблицы?
т.е. нельзя к примеру запихнуть файл с названием типа: table_date1-date2?
расширение то файла не важно а вот название - я не разобрался.
и еще можно ли как то получать файл (с названием в таком формате) с помощью mysqldump'а?
т.е. взять слить все записи с date1 по date2 в дамп. а соответственно и файл назвать, чтоб понятно было, что в нём.

поскольку я не знал как это сделать, что наваял:
- я создаю табулированный файл таблицы программно.. в билдере.
на выходе имею верно оформленный (покрайней мере внешне) файл дампа.
(такой же как создает и mysqldump --tab...)
уже сравнивал файлики, сделанные моей прогой и mysqldump'ом - ничем не отличаются.
но, как только пытаюсь залить свой файлик, то вываливается ошибка 1265:
Data truncated for column "..." (указывает на последнюю колонку) at row 1...
подскажите в чем может быть дело, не могу понять где копать?

Неактивен

 

#8 28.10.2009 13:06:14

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: множество дампов в одну таблицу

А не проще переименовать потом просто файлики mysqldump? Ну, в смысле
«переименовать и дописать».

Truncated == не влезает. Например, такая ошибка возникает при попытке записать
слово '1234567890' в колонку типа VARCHAR(5).

Неактивен

 

#9 29.10.2009 06:54:09

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

Re: множество дампов в одну таблицу

c обычным переименованием идея хорошая, чтоб в дебри не лезть.

а вот то что у меня не влезает - очень странно. там просто одна цифра записана в поле, она хоть как должна влазить.
файл с таким же содержимым созданный дампом - работает, а вручную сформированный - не хочет.
не знаю что подозревать.. может там скрытые есть модификаторы какие-то

Неактивен

 

#10 29.10.2009 09:04:43

Edisson
Участник
Откуда: Yekaterinburg
Зарегистрирован: 22.10.2009
Сообщений: 15

Re: множество дампов в одну таблицу

что-то я запарился с программной реализацией дампа из blob-поля.
не лезет строка с концевым символом, который содержится в моих данных blob.
подскажите пожалуйста как реализовать датированный дамп (табулированный) средствами mysql?  с date1 до date2...

потом можно заодно все перенесенные записи в исходной таблице подчистить (для общего развитияsmile (но не обязательно, это и программным способом легко реализуется)

Неактивен

 

Board footer

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