diff --git a/common/database_instances.cpp b/common/database_instances.cpp index f0bdda42e..0949a6708 100644 --- a/common/database_instances.cpp +++ b/common/database_instances.cpp @@ -496,7 +496,7 @@ void Database::DeleteInstance(uint16 instance_id) query = fmt::format("DELETE FROM dynamic_zones WHERE instance_id={}", instance_id); QueryDatabase(query); - query = fmt::format("DELETE FROM expedition_details WHERE instance_id={}", instance_id); + query = fmt::format("UPDATE expedition_details SET instance_id = NULL WHERE instance_id={}", instance_id); QueryDatabase(query); BuryCorpsesInInstance(instance_id); @@ -589,7 +589,7 @@ void Database::PurgeExpiredInstances() QueryDatabase(fmt::format("DELETE FROM spawn_condition_values WHERE instance_id IN ({})", imploded_instance_ids)); QueryDatabase(fmt::format("UPDATE character_corpses SET is_buried = 1, instance_id = 0 WHERE instance_id IN ({})", imploded_instance_ids)); QueryDatabase(fmt::format("DELETE FROM dynamic_zones WHERE instance_id IN ({})", imploded_instance_ids)); - QueryDatabase(fmt::format("DELETE FROM expedition_details WHERE instance_id IN ({})", imploded_instance_ids)); + QueryDatabase(fmt::format("UPDATE expedition_details SET instance_id = NULL WHERE instance_id IN ({})", imploded_instance_ids)); } void Database::SetInstanceDuration(uint16 instance_id, uint32 new_duration) diff --git a/utils/sql/git/required/wip_expeditions.sql b/utils/sql/git/required/wip_expeditions.sql index 971880e37..fe92bb2b4 100644 --- a/utils/sql/git/required/wip_expeditions.sql +++ b/utils/sql/git/required/wip_expeditions.sql @@ -1,7 +1,7 @@ CREATE TABLE `expedition_details` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(36) NOT NULL, - `instance_id` INT(10) NOT NULL, + `instance_id` INT(10) NULL DEFAULT 0, `expedition_name` VARCHAR(128) NOT NULL, `leader_id` INT(10) UNSIGNED NOT NULL DEFAULT 0, `min_players` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,