· 8 years ago · Apr 26, 2018, 02:26 PM
1DELIMITER //
2
3CREATE PROCEDURE DropSchema()
4BEGIN
5 DROP TABLE IF EXISTS Golds;
6 DROP TABLE IF EXISTS Levels;
7END;
8//
9
10CREATE PROCEDURE CreateSchema()
11BEGIN
12 CREATE TABLE IF NOT EXISTS Golds (
13 GoldID INT NOT NULL AUTO_INCREMENT,
14 SteamID VARCHAR(64) NOT NULL,
15 Class INT UNSIGNED NOT NULL,
16 Gold INT UNSIGNED NOT NULL,
17 PRIMARY KEY (LevelID)
18 );
19 CREATE TABLE IF NOT EXISTS Levels (
20 LevelID INT NOT NULL AUTO_INCREMENT,
21 SteamID VARCHAR(64) NOT NULL,
22 Class INT UNSIGNED NOT NULL,
23 Level DECIMAL(8, 4) UNSIGNED NOT NULL,
24 PRIMARY KEY (LevelID)
25 );
26END;
27//
28
29CREATE PROCEDURE UpsertGold(SteamID VARCHAR(64), Class INT, Gold INT)
30BEGIN
31 IF (EXISTS(SELECT Gold FROM Golds WHERE SteamID = SteamID AND Class = Class)) THEN
32 UPDATE Golds SET Gold = Gold WHERE SteamID = SteamID AND Class = Class;
33 ELSE
34 INSERT INTO Golds (SteamID, Class, Gold) VALUES (SteamID, Class, Gold);
35 END IF;
36END;
37//
38
39CREATE PROCEDURE UpsertLevel(SteamID VARCHAR(64), Class INT, Level DECIMAL(8, 4))
40BEGIN
41 IF (EXISTS(SELECT Level FROM Levels WHERE SteamID = SteamID AND Class = Class)) THEN
42 UPDATE Levels SET Level = Level WHERE SteamID = SteamID AND Class = Class;
43 ELSE
44 INSERT INTO Levels (SteamID, Class, Level) VALUES (SteamID, Class, Level);
45 END IF;
46END;
47//
48
49DELIMITER ;