From 0c6df742eed8dcf91e79c7d25ac2e5c72fea518f Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 8 Jun 2009 12:25:22 -0500 Subject: *Add some sql tools to merge two db. This is only a template and is pushed for dev use. Do not use it unless you understand it and know how to modify it. --HG-- branch : trunk --- sql/tools/world_merge_db/readme.txt | 5 +++++ sql/tools/world_merge_db/world_merge_creature.sql | 13 +++++++++++++ sql/tools/world_merge_db/world_remove_merged_creature.sql | 2 ++ 3 files changed, 20 insertions(+) create mode 100644 sql/tools/world_merge_db/readme.txt create mode 100644 sql/tools/world_merge_db/world_merge_creature.sql create mode 100644 sql/tools/world_merge_db/world_remove_merged_creature.sql (limited to 'sql') diff --git a/sql/tools/world_merge_db/readme.txt b/sql/tools/world_merge_db/readme.txt new file mode 100644 index 00000000000..43dd5916326 --- /dev/null +++ b/sql/tools/world_merge_db/readme.txt @@ -0,0 +1,5 @@ +Suppose your primary db is called "world", and you have another db called "world2". By running world_merge_xxx.sql you can copy some spawn points which do not exist in "world" from "world2" to "world". + +If you want to apply a update pack to "world", first run world_remove_merged_xxx to remove the merged spawn points of "world2" from "world", then apply update packet, then re-apply world_merge_xxx.sql. Make sure to do that clean up every time you use a update pack on "world" or "world2". Otherwise your db will be messed up. + +Do not use these sql unless you can understand them. \ No newline at end of file diff --git a/sql/tools/world_merge_db/world_merge_creature.sql b/sql/tools/world_merge_db/world_merge_creature.sql new file mode 100644 index 00000000000..810031e6d3e --- /dev/null +++ b/sql/tools/world_merge_db/world_merge_creature.sql @@ -0,0 +1,13 @@ +DROP TABLE IF EXISTS merge_creature; + +CREATE TABLE merge_creature +(guid_new INT NOT NULL AUTO_INCREMENT PRIMARY KEY) +SELECT * FROM world2.creature WHERE id NOT IN (SELECT DISTINCT id FROM creature); + +ALTER TABLE merge_creature ADD INDEX guid (guid); + +UPDATE merge_creature SET guid = guid_new + (SELECT MAX(guid) FROM creature); + +ALTER TABLE merge_creature DROP COLUMN guid_new; + +INSERT creature SELECT * FROM merge_creature; diff --git a/sql/tools/world_merge_db/world_remove_merged_creature.sql b/sql/tools/world_merge_db/world_remove_merged_creature.sql new file mode 100644 index 00000000000..c9b95bd9f17 --- /dev/null +++ b/sql/tools/world_merge_db/world_remove_merged_creature.sql @@ -0,0 +1,2 @@ +DELETE FROM creature WHERE guid IN (SELECT guid FROM merge_creature); +DROP TABLE IF EXISTS merge_creature; -- cgit v1.2.3