SQL: Fix 2022_01_26_45_world.sql for mysql 5.7

This commit is contained in:
Shauren
2022-01-27 11:13:04 +01:00
parent 88659dcebf
commit d0bfca5a73

View File

@@ -1,29 +1,43 @@
ALTER TABLE `gossip_menu` RENAME COLUMN `MenuId` TO `MenuID`;
ALTER TABLE `gossip_menu` RENAME COLUMN `TextId` TO `TextID`;
ALTER TABLE `gossip_menu_option` RENAME COLUMN `MenuId` TO `MenuID`;
ALTER TABLE `gossip_menu_option` RENAME COLUMN `OptionIndex` TO `OptionID`;
ALTER TABLE `gossip_menu_option` RENAME COLUMN `OptionBroadcastTextId` TO `OptionBroadcastTextID`;
ALTER TABLE `gossip_menu_option` ADD `ActionMenuID` int(10) unsigned NOT NULL DEFAULT 0 AFTER `OptionNpcFlag`;
ALTER TABLE `gossip_menu_option` ADD `ActionPoiID` int(10) unsigned NOT NULL DEFAULT 0 AFTER `ActionMenuID`;
ALTER TABLE `gossip_menu_option` ADD `BoxCoded` tinyint(3) unsigned NOT NULL DEFAULT 0 AFTER `ActionPoiID`;
ALTER TABLE `gossip_menu_option` ADD `BoxMoney` int(10) unsigned NOT NULL DEFAULT 0 AFTER `BoxCoded`;
ALTER TABLE `gossip_menu_option` ADD `BoxText` mediumtext AFTER `BoxMoney`;
ALTER TABLE `gossip_menu_option` ADD `BoxBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0 AFTER `BoxText`;
DROP PROCEDURE IF EXISTS apply_if_not_exists_2022_01_26_45_world;
ALTER TABLE `gossip_menu_option_locale` RENAME COLUMN `MenuId` TO `MenuID`;
ALTER TABLE `gossip_menu_option_locale` RENAME COLUMN `OptionIndex` TO `OptionID`;
DELIMITER ';;'
CREATE PROCEDURE apply_if_not_exists_2022_01_26_45_world() begin
/* try to rerun a fixed version of the old update */
IF NOT EXISTS (SELECT * FROM `information_schema`.`columns` WHERE `table_schema`=SCHEMA() AND `table_name`='gossip_menu_option' AND `column_name`='OptionID') THEN
ALTER TABLE `gossip_menu` CHANGE `MenuId` `MenuID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `gossip_menu` CHANGE `TextId` `TextID`int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `gossip_menu_option` CHANGE `MenuId` `MenuID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `gossip_menu_option` CHANGE `OptionIndex` `OptionID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `gossip_menu_option` CHANGE `OptionBroadcastTextId` `OptionBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `gossip_menu_option` ADD `ActionMenuID` int(10) unsigned NOT NULL DEFAULT 0 AFTER `OptionNpcFlag`;
ALTER TABLE `gossip_menu_option` ADD `ActionPoiID` int(10) unsigned NOT NULL DEFAULT 0 AFTER `ActionMenuID`;
ALTER TABLE `gossip_menu_option` ADD `BoxCoded` tinyint(3) unsigned NOT NULL DEFAULT 0 AFTER `ActionPoiID`;
ALTER TABLE `gossip_menu_option` ADD `BoxMoney` int(10) unsigned NOT NULL DEFAULT 0 AFTER `BoxCoded`;
ALTER TABLE `gossip_menu_option` ADD `BoxText` mediumtext AFTER `BoxMoney`;
ALTER TABLE `gossip_menu_option` ADD `BoxBroadcastTextID` int(10) unsigned NOT NULL DEFAULT 0 AFTER `BoxText`;
ALTER TABLE `gossip_menu_option_locale` CHANGE `MenuId` `MenuID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `gossip_menu_option_locale` CHANGE `OptionIndex` `OptionID` int(10) unsigned NOT NULL DEFAULT 0;
UPDATE `gossip_menu_option` gmo
LEFT JOIN `gossip_menu_option_action` gmoa ON gmo.`MenuID` = gmoa.`MenuId` AND gmo.`OptionID` = gmoa.`OptionIndex`
LEFT JOIN `gossip_menu_option_box` gmob ON gmo.`MenuId` = gmoa.`MenuId` AND gmo.`OptionID` = gmoa.`OptionIndex`
SET gmo.`ActionMenuID` = COALESCE(gmoa.`ActionMenuId`, 0), gmo.`ActionPoiID` = COALESCE(gmoa.`ActionPoiId`, 0),
gmo.`BoxCoded` = COALESCE(gmob.`BoxCoded`, 0), gmo.`BoxMoney` = COALESCE(gmob.`BoxMoney`, 0), gmo.`BoxText` = gmob.`BoxText`, gmo.`BoxBroadcastTextID` = COALESCE(gmob.`BoxBroadcastTextId`, 0);
DROP TABLE `gossip_menu_option_action`;
DROP TABLE `gossip_menu_option_box`;
ALTER TABLE `creature_trainer` CHANGE `CreatureId` `CreatureID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `creature_trainer` CHANGE `TrainerId` `TrainerID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `creature_trainer` CHANGE `MenuId` `MenuID` int(10) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `creature_trainer` CHANGE `OptionIndex` `OptionID` int(10) unsigned NOT NULL DEFAULT 0;
END IF;
END;;
UPDATE `gossip_menu_option` gmo
LEFT JOIN `gossip_menu_option_action` gmoa ON gmo.`MenuID` = gmoa.`MenuId` AND gmo.`OptionID` = gmoa.`OptionIndex`
LEFT JOIN `gossip_menu_option_box` gmob ON gmo.`MenuId` = gmoa.`MenuId` AND gmo.`OptionID` = gmoa.`OptionIndex`
SET gmo.`ActionMenuID` = COALESCE(gmoa.`ActionMenuId`, 0), gmo.`ActionPoiID` = COALESCE(gmoa.`ActionPoiId`, 0),
gmo.`BoxCoded` = COALESCE(gmob.`BoxCoded`, 0), gmo.`BoxMoney` = COALESCE(gmob.`BoxMoney`, 0), gmo.`BoxText` = gmob.`BoxText`, gmo.`BoxBroadcastTextID` = COALESCE(gmob.`BoxBroadcastTextId`, 0);
DELIMITER ';'
CALL apply_if_not_exists_2022_01_26_45_world();
DROP TABLE `gossip_menu_option_action`;
DROP TABLE `gossip_menu_option_box`;
ALTER TABLE `creature_trainer` RENAME COLUMN `CreatureId` TO `CreatureID`;
ALTER TABLE `creature_trainer` RENAME COLUMN `TrainerId` TO `TrainerID`;
ALTER TABLE `creature_trainer` RENAME COLUMN `MenuId` TO `MenuID`;
ALTER TABLE `creature_trainer` RENAME COLUMN `OptionIndex` TO `OptionID`;
DROP PROCEDURE IF EXISTS apply_if_not_exists_2022_01_26_45_world;