server/sql/updates/8433_01_characters_character_account_data.sql
VladimirMangos 5cf72882ad [8433] Implement proper store and use character specific account data.
* Base at TOM_RUS reseach save/load character specific account data in new table `character_account_data`
* Move its in sql update from `account_data` to new table.
* For client packets that can be send in loggined state or just after logout but assocualted
  with recently logout character add new login status STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT
* Store low guid for loggedin player or recently logout into WorldSession.
2009-08-29 11:26:57 +04:00

16 lines
No EOL
732 B
SQL

ALTER TABLE character_db_version CHANGE COLUMN required_8409_01_characters_guild required_8433_01_characters_character_account_data bit;
DROP TABLE IF EXISTS `character_account_data`;
CREATE TABLE `character_account_data` (
`guid` int(11) unsigned NOT NULL default '0',
`type` int(11) unsigned NOT NULL default '0',
`time` bigint(11) unsigned NOT NULL default '0',
`data` longtext NOT NULL,
PRIMARY KEY (`guid`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO character_account_data
SELECT c.guid as guid, a.type as type, a.time as time, a.data as data
FROM characters c LEFT JOIN account_data a ON c.account = a.account WHERE a.type IN (1, 3, 5, 6, 7);
DELETE FROM account_data WHERE type IN (1, 3, 5, 6, 7);