Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Готовые сборки (https://forum.zone-game.info/forumdisplay.php?f=155)
-   -   Sql запросы (https://forum.zone-game.info/showthread.php?t=5972)

MMd 10.01.2010 15:05

Sql запросы
 
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);

Тему прикрепть.

massaker 16.01.2011 10:55

Re: Sql запросы
 
Замечательно, спасибо. А можно для примера пару, тройку запросов через Navicat прописать, только что бы было понятно в плане синтаксиса. Ну например, изменить дроп с моба. Буду очень благодарен. И вот ещё: версия сервера влияет на синтаксис запросов через Навикат ? У меня С4.;)

Perfecto 16.01.2011 13:47

Re: Sql запросы
 
Цитата:

Сообщение от massaker (Сообщение 104361)
У меня С4.

А раздел то про WoW
P.S. Правда тема нагло скопирована с румангоса

scorpion194 30.01.2012 12:34

Re: Sql запросы
 
Когда я заливаю файл SQL в базу мангос
http://s58.radikal.ru/i161/1201/30/d5b5a48527ae.jpg
у меня выкидает такие ошыбки:
http://s018.radikal.ru/i501/1201/d1/ce930a2e427e.jpg
Помогите

ExLite 30.01.2012 12:36

Re: Sql запросы
 
Цитата:

Сообщение от scorpion194 (Сообщение 162465)
Когда я заливаю файл SQL в базу мангос
у меня выкидает такие ошыбки:

отсутствует таблица account в базе mangos

scorpion194 30.01.2012 12:44

Re: Sql запросы
 
Цитата:

Сообщение от Backdoor (Сообщение 162466)
отсутствует таблица account в базе mangos

а как ее там сделать? я просто новенькой в єтом.

ExLite 30.01.2012 12:48

Re: Sql запросы
 
Цитата:

Сообщение от scorpion194 (Сообщение 162467)
а как ее там сделать? я просто новенькой в єтом.

Ну, она должна идти вместе с сервером wow, по идеи...вов неразу не ставил :redlol:

scorpion194 30.01.2012 12:50

Re: Sql запросы
 
И как мне теперь быть :confused:

ExLite 30.01.2012 12:52

Re: Sql запросы
 
Приду домой, если zg будет доступен, а то пишет "данные не получены" :( , скачаю сборку вова и подскажу, или до меня подскажут)

scorpion194 30.01.2012 12:56

Re: Sql запросы
 
Цитата:

Сообщение от Backdoor (Сообщение 162470)
Приду домой, если zg будет доступен, а то пишет "данные не получены" :( , скачаю сборку вова и подскажу, или до меня подскажут)

Буду очень благодарен.


Текущее время: 07:10. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot