· 8 years ago · Jan 06, 2018, 09:02 PM
1CREATE TABLE IF NOT EXISTS `blogs` (
2 `id` int(11) NOT NULL AUTO_INCREMENT,
3 `session` int(11) NOT NULL,
4 `module` varchar(255) NOT NULL,
5 `log` text CHARACTER SET utf8mb4 NOT NULL,
6 `time` int(11) NOT NULL,
7 PRIMARY KEY (`id`)
8 );
9
10 CREATE TABLE IF NOT EXISTS `blogs_archive` (
11 `id` int(11) NOT NULL AUTO_INCREMENT,
12 `module` varchar(255) NOT NULL,
13 `log` text CHARACTER SET utf8mb4 NOT NULL,
14 `time` int(11) NOT NULL,
15 PRIMARY KEY (`id`)
16 );
17
18 CREATE TABLE IF NOT EXISTS `blogs_vars` (
19 `var_name` varchar(255) NOT NULL,
20 `var_str` varchar(255) NOT NULL,
21 `var_int` int(11) NOT NULL,
22 PRIMARY KEY (`var_name`)
23 );
24
25 DROP PROCEDURE IF EXISTS SCHEMA_CHANGE;
26
27 CREATE PROCEDURE SCHEMA_CHANGE() BEGIN
28
29 IF EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME='blogs' AND COLUMN_NAME='ROWID' AND TABLE_SCHEMA='varus') THEN
30 ALTER TABLE `blogs` CHANGE `ROWID` `id` INT(11) NOT NULL AUTO_INCREMENT;
31 END IF;
32
33 IF EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME='blogs_archive' AND COLUMN_NAME='ROWID' AND TABLE_SCHEMA='varus') THEN
34 ALTER TABLE `blogs_archive` CHANGE `ROWID` `id` INT(11) NOT NULL AUTO_INCREMENT;
35 END IF;
36
37 END;
38
39 CALL SCHEMA_CHANGE();
40
41 DROP PROCEDURE IF EXISTS SCHEMA_CHANGE;
42
43 INSERT IGNORE INTO `blogs_vars` (`var_name`,`var_str`,`var_int`) VALUES ('logs','','0');
44
45 INSERT IGNORE INTO `blogs_vars` (`var_name`,`var_str`,`var_int`) VALUES ('session','','0');
46
47 INSERT IGNORE INTO `blogs_vars` (`var_name`,`var_str`,`var_int`) VALUES ('logs_archive','','0');
48
49 CREATE TABLE IF NOT EXISTS `blogs_players` (
50 `steamid64` varchar(255) NOT NULL,
51 `name` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
52 PRIMARY KEY (`steamid64`)
53 );
54
55 DROP TRIGGER IF EXISTS lognum_add;
56 DROP TRIGGER IF EXISTS lognum_sub;
57
58 DROP TRIGGER IF EXISTS lognum_add_archive;
59 DROP TRIGGER IF EXISTS lognum_sub_archive;
60
61 UPDATE `blogs_vars` SET `var_int`=`var_int` + 1 WHERE `var_name`='session';
62 INSERT INTO `blogs_archive` (`module`,`log`,`time`) SELECT `module`,`log`,`time` FROM `blogs` WHERE `session` != (SELECT `var_int` FROM `blogs_vars` WHERE `var_name`='session') ORDER BY `blogs`.`time` ASC;
63 TRUNCATE `blogs`;
64
65 CREATE TRIGGER lognum_add AFTER INSERT ON `blogs` FOR EACH ROW UPDATE `blogs_vars` SET `var_int`=`var_int`+1 WHERE `var_name`='logs';
66 CREATE TRIGGER lognum_sub AFTER DELETE ON `blogs` FOR EACH ROW UPDATE `blogs_vars` SET `var_int`=`var_int`-1 WHERE `var_name`='logs';
67 CREATE TRIGGER lognum_add_archive AFTER INSERT ON `blogs_archive` FOR EACH ROW UPDATE `blogs_vars` SET `var_int`=`var_int`+1 WHERE `var_name`='logs_archive';
68 CREATE TRIGGER lognum_sub_archive AFTER DELETE ON `blogs_archive` FOR EACH ROW UPDATE `blogs_vars` SET `var_int`=`var_int`-1 WHERE `var_name`='logs_archive'