mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
DB/Creature: Remove model from creature table if not needed
Closes #24822
(cherry picked from commit 2211610ff7)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
--
|
||||
-- set creature.modelid to 0 if creature only has a single model defined in creature_template_model and that model matches value in creature table
|
||||
CREATE TEMPORARY TABLE creature_guids_with_unique_model SELECT
|
||||
c.guid
|
||||
FROM
|
||||
`creature` c
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
ctm.CreatureDisplayID AS CreatureDisplayID,
|
||||
ctm.CreatureID AS CreatureID
|
||||
FROM
|
||||
creature_template_model ctm
|
||||
GROUP BY
|
||||
ctm.CreatureID
|
||||
HAVING
|
||||
COUNT(ctm.CreatureDisplayID) = 1
|
||||
) uniq_models ON c.id = uniq_models.CreatureID
|
||||
AND c.modelid = uniq_models.CreatureDisplayID;
|
||||
|
||||
UPDATE `creature` SET `modelid`=0 WHERE `guid` IN (SELECT * FROM creature_guids_with_unique_model);
|
||||
|
||||
-- UPDATE `creature` a LEFT JOIN `creature_template` b ON a.`id` = b.`entry` SET `modelid` = 0 WHERE a.`id` IN (SELECT b.`entry` FROM `creature_template` WHERE b.`modelid1` != 0 AND b.`modelid2` = 0 AND b.`modelid3` = 0 AND b.`modelid4` = 0) AND a.`modelid` = b.`modelid1`;
|
||||
-- UPDATE `creature` a LEFT JOIN `creature_template` b ON a.`id` = b.`entry` SET `modelid` = 0 WHERE a.`id` IN (SELECT b.`entry` FROM `creature_template` WHERE b.`modelid1` = 0 AND b.`modelid2` != 0 AND b.`modelid3` = 0 AND b.`modelid4` = 0) AND a.`modelid` = b.`modelid2`;
|
||||
-- UPDATE `creature` a LEFT JOIN `creature_template` b ON a.`id` = b.`entry` SET `modelid` = 0 WHERE a.`id` IN (SELECT b.`entry` FROM `creature_template` WHERE b.`modelid1` != 0 AND b.`modelid2` != 0 AND b.`modelid3` != 0 AND b.`modelid4` != 0) AND (a.`modelid` = b.`modelid1` OR a.`modelid` = b.`modelid2` OR a.`modelid` = b.`modelid3` OR a.`modelid` = b.`modelid4`);
|
||||
UPDATE `creature` SET `modelid` = 0 WHERE `id`=1505;
|
||||
Reference in New Issue
Block a user