· 8 years ago · Nov 24, 2017, 09:16 PM
1ALTER TABLE creature CHANGE `guid` `guid` int(10) unsigned NOT NULL;
2ALTER TABLE creature AUTO_INCREMENT=1;
3ALTER TABLE creature ADD newguid INT UNSIGNED AUTO_INCREMENT, ADD INDEX(newguid);
4ALTER TABLE creature ADD UNIQUE(guid);
5
6DROP TABLE IF EXISTS creature_guids_backup;
7CREATE TABLE creature_guids_backup (
8 `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
9 `newguid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'New Global Unique Identifier',
10 PRIMARY KEY (`guid`)
11) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='GUIDs backup before and after reguid';
12
13INSERT INTO creature_guids_backup (SELECT guid, newguid FROM creature);
14
15ALTER TABLE creature_addon DROP PRIMARY KEY;
16DELETE FROM creature_addon WHERE guid NOT IN (SELECT guid FROM creature);
17UPDATE creature_addon AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
18ALTER TABLE creature_addon ADD PRIMARY KEY(guid);
19
20ALTER TABLE creature_archaeology_assign DROP PRIMARY KEY;
21DELETE FROM creature_archaeology_assign WHERE guid NOT IN (SELECT guid FROM creature);
22UPDATE creature_archaeology_assign AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
23ALTER TABLE creature_archaeology_assign ADD PRIMARY KEY(guid);
24
25ALTER TABLE creature_formations DROP PRIMARY KEY;
26DELETE FROM creature_formations WHERE leaderguid NOT IN (SELECT guid FROM creature);
27DELETE FROM creature_formations WHERE memberguid NOT IN (SELECT guid FROM creature);
28UPDATE creature_formations AS tmp JOIN creature ON tmp.leaderguid=creature.guid SET tmp.leaderguid=creature.newguid;
29UPDATE creature_formations AS tmp JOIN creature ON tmp.memberguid=creature.guid SET tmp.memberguid=creature.newguid;
30ALTER TABLE creature_formations ADD PRIMARY KEY(memberGUID);
31
32ALTER TABLE creature_linked_respawn DROP PRIMARY KEY;
33DELETE FROM creature_linked_respawn WHERE guid NOT IN (SELECT guid FROM creature);
34DELETE FROM creature_linked_respawn WHERE linkedguid NOT IN (SELECT guid FROM creature);
35UPDATE creature_linked_respawn AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
36UPDATE creature_linked_respawn AS tmp JOIN creature ON tmp.linkedguid=creature.guid SET tmp.linkedguid=creature.newguid;
37ALTER TABLE creature_linked_respawn ADD PRIMARY KEY(guid);
38
39ALTER TABLE creature_transport DROP PRIMARY KEY;
40DELETE FROM creature_transport WHERE guid NOT IN (SELECT guid FROM creature);
41UPDATE creature_transport AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
42ALTER TABLE creature_transport ADD PRIMARY KEY(transport_entry,guid);
43
44ALTER TABLE game_event_creature DROP PRIMARY KEY;
45DELETE FROM game_event_creature WHERE guid NOT IN (SELECT guid FROM creature);
46UPDATE game_event_creature AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
47ALTER TABLE game_event_creature ADD PRIMARY KEY(guid);
48
49ALTER TABLE game_event_model_equip DROP PRIMARY KEY;
50DELETE FROM game_event_model_equip WHERE guid NOT IN (SELECT guid FROM creature);
51UPDATE game_event_model_equip AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
52ALTER TABLE game_event_model_equip ADD PRIMARY KEY(guid);
53
54ALTER TABLE game_event_npc_gossip DROP PRIMARY KEY;
55DELETE FROM game_event_npc_gossip WHERE guid NOT IN (SELECT guid FROM creature);
56UPDATE game_event_npc_gossip AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
57ALTER TABLE game_event_npc_gossip ADD PRIMARY KEY(guid);
58
59ALTER TABLE game_event_npc_vendor DROP PRIMARY KEY;
60DELETE FROM game_event_npc_vendor WHERE guid NOT IN (SELECT guid FROM creature);
61UPDATE game_event_npc_vendor AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
62ALTER TABLE game_event_npc_vendor ADD PRIMARY KEY(guid,item);
63
64ALTER TABLE game_event_npcflag DROP PRIMARY KEY;
65DELETE FROM game_event_npcflag WHERE guid NOT IN (SELECT guid FROM creature);
66UPDATE game_event_npcflag AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
67ALTER TABLE game_event_npcflag ADD PRIMARY KEY(guid,event_id);
68
69ALTER TABLE npc_gossip DROP PRIMARY KEY;
70DELETE FROM npc_gossip WHERE npc_guid NOT IN (SELECT guid FROM creature);
71UPDATE npc_gossip AS tmp JOIN creature ON tmp.npc_guid=creature.guid SET tmp.npc_guid=creature.newguid;
72ALTER TABLE npc_gossip ADD PRIMARY KEY(npc_guid);
73
74ALTER TABLE pool_creature DROP PRIMARY KEY;
75DELETE FROM pool_creature WHERE guid NOT IN (SELECT guid FROM creature);
76UPDATE pool_creature AS tmp JOIN creature ON tmp.guid=creature.guid SET tmp.guid=creature.newguid;
77ALTER TABLE pool_creature ADD PRIMARY KEY(guid);
78
79-- ALTER TABLE cata_char.creature_respawn DROP PRIMARY KEY;
80-- UPDATE cata_char.creature_respawn ca, cata_world.creature cc SET ca.guid=cc.newguid WHERE ca.guid=cc.guid;
81-- ALTER TABLE cata_char.creature_respawn ADD PRIMARY KEY(guid,instance);
82ALTER TABLE ptr_char.creature_respawn DROP PRIMARY KEY;
83UPDATE ptr_char.creature_respawn ca, ptr_world.creature cc SET ca.guid=cc.newguid WHERE ca.guid=cc.guid;
84ALTER TABLE ptr_char.creature_respawn ADD PRIMARY KEY(guid,instance);
85
86ALTER TABLE creature DROP PRIMARY KEY;
87ALTER TABLE creature DROP INDEX guid;
88UPDATE creature SET guid=newguid;
89
90ALTER TABLE creature ADD PRIMARY KEY(guid);
91
92ALTER TABLE creature DROP newguid;
93ALTER TABLE creature CHANGE `guid` `guid` int(10) unsigned NOT NULL AUTO_INCREMENT;