Сразу прошу помидорами не кидаться
Программиринг в стадии изучения
Давно еще хотел навести порядок в базе в таблицах связанных по ключевым полям 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
Спасибо за внимание