Вторник, 07.02.2012, 03:18
Установка и настройка серверов
Главная Регистрация Вход
Приветствую Вас, Посетитель · RSS
Меню сайта

Основные разделы

Форма входа
Логин:
Пароль:
Категории раздела
Сервера Mangos [32]
Установка и настройка серверов wow
Документации [26]
Документации к Mangos
WWW [14]
Web интерфейс для Mangos
Статьи [5]
Интересные статьи
Последние сообщ.
WoWRiSe 
последний ответил: Drum


Проект ожил?! 0.о 
последний ответил: rufus515


Готовая сборка Мангос для 3.3.5а БЕТА!!!!!! 
последний ответил: rufus515


Считаем до 1000 
последний ответил: rufus515


MaNGOSZero Repack v1.0 - 1.12.x 
последний ответил: rufus515


Реклама Google
 Мануалы
Главная » Статьи » Документации

SQL запросы, которые должнен знать каждый админ

SQL запросы, которые должнен знать каждый админ
Цитата:
Сообщение от indomit
SQL запросы, которые должнен знать каждый админ :)

Предлагаю собрать в одном месте все sql запросы, помогающие выявить неверные и/или некорректные записи, дабы было проще отлавливать их.
Так как базы постоянно обновляются, есть необходимость каждый раз проверять на наличие таких ошибок, чтобы состояние баз стремилось к идеальному :)

Когда запросов накопится достаточно, можно будет написать утилиту проверки.

Вот пока что пришло первым в голову... Выкладывайте и свои запросы, которыми вы часто пользуетесь :)

Код:
# вещи на которых можно навариться
SELECT * FROM `item_template` WHERE (`sellprice` * `buycount` > `buyprice`) and entry in (select item from npc_vendor);
SELECT * FROM `item_template` WHERE (`buycount` = 0) AND (`sellprice` > `buyprice`) and entry in (select item from npc_vendor);

#лишние записи по игрокам (все "SELECT *" можно смело менять на "DELETE" )
SELECT * FROM `character_action` where guid not in (select guid from `character`);
SELECT * FROM `character_aura` where guid not in (select guid from `character`);
SELECT * FROM `character_homebind` where guid not in (select guid from `character`);
SELECT * FROM `character_inventory` where guid not in (select guid from `character`);
SELECT * FROM `character_kill` where guid not in (select guid from `character`);
SELECT * FROM `character_pet` where guid not in (select guid from `character`);
SELECT * FROM `character_queststatus` where guid not in (select guid from `character`);
SELECT * FROM `character_reputation` where guid not in (select guid from `character`);
SELECT * FROM `character_social` where guid not in (select guid from `character`);
SELECT * FROM `character_spell` where guid not in (select guid from `character`);
SELECT * FROM `character_spell_cooldown` where guid not in (select guid from `character`);
SELECT * FROM `character_stable` where guid not in (select guid from `character`);
SELECT * FROM `character_ticket` where guid not in (select guid from `character`);
SELECT * FROM `character_tutorial` where guid not in (select guid from `character`);
SELECT * FROM `corpse` where `player` not in (select guid from `character`);
SELECT * FROM `character_inventory` where item not in (SELECT guid FROM `item_instance`);
SELECT * FROM `item_instance` where guid not in (SELECT item FROM `character_inventory`);
SELECT * FROM `character_queststatus` where quest not in (select `entry` from `quest_template`);
SELECT * FROM `character_social` where `friend` not in (select guid from `character`);

# неверные предметы у продавцов ("SELECT *" -> "DELETE" для очистки)
SELECT * FROM `mangos`.`npc_vendor` WHERE `item` not in (SELECT `entry` FROM `item_template`);

# предметы для продажи есть, однако NPC не может их продать (flag не содержит 4)
# фиксить:
# или изменить флаг (если это действительно продавец),
# или удалить записи из npc_vendor (если не продавец)
SELECT * FROM `creature_template` WHERE (`entry` in (SELECT `entry` from `npc_vendor`)) AND (`npcflag` & 4 <> 4);

# несуществующие продавцы
SELECT * FROM `npc_vendor` WHERE `entry` not in (SELECT `entry` from `creature_template`);

# несуществующие тренеры
SELECT * FROM `npc_trainer` WHERE `entry` not in (SELECT `entry` from `creature_template`);

# простая проверка на квесты (вообще их куча как в ядре, так и в моей программе)
SELECT * FROM `mangos`.`quest_template` where minlevel>questlevel

# аукцион
SELECT * FROM `auctionhouse` where `auctioneerguid` not in (select guid from `character`);
SELECT * FROM `auctionhouse` where `itemowner` not in (select guid from `character`);

# мобы с маленькими / неверными жизнями / уровнями
SELECT * FROM `mangos`.`creature` where curhealth < 20;
SELECT * FROM `mangos`.`creature_template` where minhealth>maxhealth;
SELECT * FROM `mangos`.`creature_template` where (minhealth< 20 ) or (maxhealth<20);
SELECT * FROM `mangos`.`creature_template` where minlevel>maxlevel;
SELECT * FROM `mangos`.`creature_template` where (minlevel=0) or (maxlevel=0);

# несуществующие мобы
SELECT * FROM `creature` c where id not in (select entry from creature_template);
Цитата:
Сообщение от ZzZzZzZ
А как же фиксы на 2 первых запроса?
Код:
UPDATE `item_template` SET `sellprice` = (`buyprice` /`buycount`) WHERE (`sellprice` * `buycount` > `buyprice`) and entry in (select item from npc_vendor);
UPDATE `item_template` SET `sellprice` = `buyprice` WHERE (`buycount` = 0) AND (`sellprice` > `buyprice`) and entry in (select item from npc_vendor);
Теперь не наварятся =)
Взято с MaNGOS.ru
Категория: Документации | Добавил: theolaw (06.01.2009)
Просмотров: 5289 | Рейтинг: 0.0/0 |
Copyright MangosOrg || Настройка и установка серверов Mangos © 2008 - 2012
Наш опрос
Создать ли игровой сервер при портале?
Всего ответов: 749
Статистика

Зарегестрировано:
Всего: 704
Новых за месяц: 11
Новых за неделю: 2
Новых вчера: 1
Новых сегодня: 0
Из них:
Администраторов: 1
Модераторов: 1
Проверенных: 4
Забаненных: 5
Обычных юзеров: 691
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Поиск по сайту
Реклама Google

MaNGOS - это объект-ориентированный Massively Multiplayer Online Role-Playing Game Server (MMORPGS).
MaNGOS проект с открытым исходным кодом, оригиналом которого является код проекта WoWD.
ManNGoS распространяется по GNU GENERAL PUBLIC LICENSE, по которой, распространение сервера и его исходников не нарушает авторские права Blizzard Entertainment.
World of Warcraft - торговая марка зарегистрированная Blizzard Entertainment. Copyright © Blizzard Entertainment.
Хостинг от uCoz