Задавайте вопросы, мы ответим
Вы не зашли.
если требуется с нескольких компов собрать дампы (таблицы X)
и слить их на один комп (условно - для анализа) в аналогичную пустую таблицу X, то значения айдишников (как ключевых полей) конечно может пересекаться. соответственно это может приводить к ошибке или дамп перестает заливаться..
подскажите, каким образом можно решить проблему одинаковых значений ключевых полей при попытке объединения данных?
каким-то образом может переиндексировать во время заливки или еще что?
спасибо
Неактивен
Попробуйте дампить их не в текстовые файлики, а в tab-separated (mysqldump --tab).
После этого при импортировании данных можно будет просто игнорировать колонку
с id (mysqlimport -c "@dummy, ...").
Неактивен
дополнительно еще почитал манул, внимание остановилось на параметрах --replace, --ignore,
но в таком случае это приведет к потере/перетиранию каких-либо строк при импорте
попробовал игнорирование поля, то что вы предложили, помогло.
айдишники сами заполняются.
благодарю!
Неактивен
а если у нас, к примеру, имеются базы с именами
db_2007
db_2008
db_2009
и т.п...
можно ли как-то при помощи регулярных выражений выделить все базы с именем db_ и сделать их дамп?
если не затруднит, рабочий пример приведите
Неактивен
mysql -NBe "SHOW DATABASES" | egrep '^db_' | xargs mysqldump -B
Ну или любое другое регулярное выражение. Или если Вас устроят wildcards, то можно
делать SHOW DATABASES LIKE 'db_%'.
Неактивен
большое спасибо буду пробовать
Неактивен
возникли еще кой-какие вопросы.
- mysqlimport кушает файл только с названием нужной таблицы?
т.е. нельзя к примеру запихнуть файл с названием типа: table_date1-date2?
расширение то файла не важно а вот название - я не разобрался.
и еще можно ли как то получать файл (с названием в таком формате) с помощью mysqldump'а?
т.е. взять слить все записи с date1 по date2 в дамп. а соответственно и файл назвать, чтоб понятно было, что в нём.
поскольку я не знал как это сделать, что наваял:
- я создаю табулированный файл таблицы программно.. в билдере.
на выходе имею верно оформленный (покрайней мере внешне) файл дампа.
(такой же как создает и mysqldump --tab...)
уже сравнивал файлики, сделанные моей прогой и mysqldump'ом - ничем не отличаются.
но, как только пытаюсь залить свой файлик, то вываливается ошибка 1265:
Data truncated for column "..." (указывает на последнюю колонку) at row 1...
подскажите в чем может быть дело, не могу понять где копать?
Неактивен
А не проще переименовать потом просто файлики mysqldump? Ну, в смысле
«переименовать и дописать».
Truncated == не влезает. Например, такая ошибка возникает при попытке записать
слово '1234567890' в колонку типа VARCHAR(5).
Неактивен
c обычным переименованием идея хорошая, чтоб в дебри не лезть.
а вот то что у меня не влезает - очень странно. там просто одна цифра записана в поле, она хоть как должна влазить.
файл с таким же содержимым созданный дампом - работает, а вручную сформированный - не хочет.
не знаю что подозревать.. может там скрытые есть модификаторы какие-то
Неактивен
что-то я запарился с программной реализацией дампа из blob-поля.
не лезет строка с концевым символом, который содержится в моих данных blob.
подскажите пожалуйста как реализовать датированный дамп (табулированный) средствами mysql? с date1 до date2...
потом можно заодно все перенесенные записи в исходной таблице подчистить (для общего развития (но не обязательно, это и программным способом легко реализуется)
Неактивен