server/sql/updates/11217_01_mangos_creature_addon.sql

56 lines
1.6 KiB
SQL

ALTER TABLE db_version CHANGE COLUMN required_11214_02_mangos_command required_11217_01_mangos_creature_addon bit;
CREATE TABLE `temp_auras` (
`spell` mediumint(8) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
DELIMITER %%
CREATE FUNCTION `ConvertAuras`(`auras` varchar(1024))
RETURNS varchar(1024) CHARSET utf8
BEGIN
DECLARE tmp VARCHAR(1024);
DECLARE curr VARCHAR(10);
DECLARE k INT;
DECLARE pos INT;
DECLARE startp INT;
SET @k = 0;
SET @tmp = '';
SET @startp = 1;
SET @pos = LOCATE(' ', auras);
DELETE FROM temp_auras;
WHILE @pos > 0 DO
IF @k = 0 THEN
SET @curr = SUBSTR(auras, @startp, @pos - @startp);
IF NOT EXISTS(SELECT spell FROM temp_auras WHERE spell = @curr) THEN
SET @tmp = CONCAT(@tmp, @curr, ' ');
INSERT INTO temp_auras VALUES(@curr);
END IF;
END IF;
SET @k = 1-@k;
SET @startp = @pos+1;
SET @pos = LOCATE(' ', auras, @startp);
END WHILE;
SET @tmp = RTRIM(@tmp);
RETURN @tmp;
END%%
DELIMITER ;
UPDATE `creature_template_addon` SET `auras` = REPLACE(`auras`, ' ', ' ');
UPDATE `creature_template_addon` SET `auras` = TRIM(`auras`);
UPDATE `creature_template_addon` SET `auras` = NULL WHERE `auras` = '';
UPDATE `creature_template_addon` SET `auras` = ConvertAuras(`auras`) WHERE `auras` IS NOT NULL;
UPDATE `creature_addon` SET `auras` = REPLACE(`auras`, ' ', ' ');
UPDATE `creature_addon` SET `auras` = TRIM(`auras`);
UPDATE `creature_addon` SET `auras` = NULL WHERE `auras` = '';
UPDATE `creature_addon` SET `auras` = ConvertAuras(`auras`) WHERE `auras` IS NOT NULL;
DROP FUNCTION `ConvertAuras`;
DROP TABLE `temp_auras`;