View Single Post
  #9  
Old 11-06-2021, 04:15 PM
TercerRigo TercerRigo is offline
Orc

TercerRigo's Avatar

Join Date: Jan 2015
Posts: 34
Default

I just tried the following on a local eqemu instance I keep to fart around in (compiled sometime a year ago):

Code:
select
    cd.id,
    cd.name,
    cd.deleted_at
from
    account a
    join character_data cd
        on a.id = cd.account_id
where
    a.name = 'test_account'
;
which gave me my test characters :

Code:
id	name	deleted_at
12	Testcharacter	NULL
13	Tiwegrapi	NULL
14	Zyygraxit	NULL
15	Skitid-deleted-1636227165	2021-11-06 12:32:45
then I ran this :

Code:
select @id := 15;

update
    character_data
set
    name = (
        select
            left(name, locate('-deleted-', name) - 1)
        from
            character_data
        where
            id = @id
    )
where
    id = @id
;

update
    character_data
set
    deleted_at = NULL
where
    id = @id
;
which gave me this when I ran the first query again :

Code:
id	name	deleted_at
12	Testcharacter	NULL
13	Tiwegrapi	NULL
14	Zyygraxit	NULL
15	Skitid	NULL
I'm now able to see and use my deleted character. I don't know if anything else is necessary, but it seems to work fine (turned in a quest, memorized spells, killed a mob, gained xp). I can't imagine the schema being that different, but who knows, maybe a cron runs nightly on p1999 that purges deleted character data.

I guess what I'm trying to convey is, if they wanted to, they would have already written something like this and ran it in when requested.
Reply With Quote