Показать сообщение отдельно
Старый 17.12.2010, 10:27   #1
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию DataBase GUID sorter

Сразу прошу помидорами не кидаться Программиринг в стадии изучения
Давно еще хотел навести порядок в базе в таблицах связанных по ключевым полям GUID (например characters и от нее зависящие character_* или creature и creature_*) смысл понятен. Иногда, или даже постоянно если много работаешь с базой, появляются пробелы в гуидах и они приобретают колоссальные значения
Программка создает темповое поле в которое перезаписывает исходные GUID'ы в инкрементальном порядке от 1 и до значения которое выдаст запрос COUNT(*) Одновременно сопоставляя GUID'ы из указанных зависящих таблиц, так же создает темповое поле и записывает на него соответствующие новые GUID'ы. По окончании выполнения, удаляет из зависящих таблиц записи у которых темповое поле оказалось равным 0 (значит гуид не существует в исходной таблице) и заменяет старое guid поле на то что получилось в темповом.

Мда, не умею я красиво объяснять, но как есть

В итоге что пока умеет:
- Поддержка до 5 таблиц, однако можно в коде выставить больше кто желает.
- Поддержка 2 полей в PRI KEY.

Как работает:
1) Запускаем, вводим данные для соединения с базой (как правило нужен юзер с доступом на ALTER запрос.)
2) После соединения с бд вводим setvar и указываем переменные.
3) Вводим start и ждем (чем больше зависящих таблиц и записей тем дольше работает)

Скриншот результата:


Сейчас пока альфа тестовая версия консольная, позже сделаю на Qt4.

Исходники https://github.com/sidsukana/dbsorter
Релизный бинарник https://github.com/downloads/sidsuka...er_Release.zip

Спасибо за внимание

Последний раз редактировалось Sid; 17.12.2010 в 10:33.
Sid вне форума   Ответить с цитированием