Mini How-To suggestion and correction
Posted: Thu Sep 01, 2005 5:36 pm
Hi there,
The MySQL create table SQL is incorrect. It looks like it's designed for SQLite.
Should be:
i.e., drop the DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP bit.
Also, I'd like to suggest changing the vault to table conversion awk script to something like this:
Or the hex version of " if you prefer. It's just that ' is such a common character in players' names.
Just a suggestion.
Cheers
Anders
The MySQL create table SQL is incorrect. It looks like it's designed for SQLite.
Code: Select all
CREATE TABLE `war3users` (`playerid` VARCHAR(35) NOT NULL DEFAULT '', `playername` VARCHAR(35) NOT NULL DEFAULT '', `xp` INT(11) NOT NULL DEFAULT '0', `race` TINYINT(4) NOT NULL DEFAULT '0', `skill1` TINYINT(4) NOT NULL DEFAULT '0', `skill2` TINYINT(4) NOT NULL DEFAULT '0', `skill3` TINYINT(4) NOT NULL DEFAULT '0', `skill4` TINYINT(4) NOT NULL DEFAULT '0', `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`playerid`, `race`)) COMMENT='Warcraft 3 FT XP Storage' ;
Code: Select all
CREATE TABLE `war3users` (
`playerid` VARCHAR(35) NOT NULL DEFAULT '',
`playername` VARCHAR(35) NOT NULL DEFAULT '',
`xp` INT(11) NOT NULL DEFAULT '0',
`race` TINYINT(4) NOT NULL DEFAULT '0',
`skill1` TINYINT(4) NOT NULL DEFAULT '0',
`skill2` TINYINT(4) NOT NULL DEFAULT '0',
`skill3` TINYINT(4) NOT NULL DEFAULT '0',
`skill4` TINYINT(4) NOT NULL DEFAULT '0',
`time` TIMESTAMP(14) NOT NULL,
PRIMARY KEY (`playerid`, `race`))
COMMENT='Warcraft 3 FT XP Storage' ;
Also, I'd like to suggest changing the vault to table conversion awk script to something like this:
Code: Select all
awk '{ if (/;|#|^ *$|\/\//) next ; if (NF != 14) next ; printf "REPLACE INTO war3users (playerid, playername, xp, race, skill1, skill2, skill3, skill4, `time`) VALUES ( \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s-%s-%s %s:%s:%s\" );\n", substr($(NF-13), 0 , length($(NF-13))-2), $(NF-5), $(NF-11), $(NF-10), $(NF-9), $(NF-8), $(NF-7), $(NF-6), strftime("%Y"), $(NF-3), $(NF-2), $(NF-1), $(NF), "00" }' <./amxmodx/data/vault.ini |mysql -u amx -p<amx user password> amx
Just a suggestion.
Cheers
Anders