-
Notifications
You must be signed in to change notification settings - Fork 0
/
database.sql
163 lines (135 loc) · 4.08 KB
/
database.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
--
-- File generated with SQLiteStudio v3.3.3 on Fri Nov 12 17:33:11 2021
--
-- Text encoding used: System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;
-- Table: meta
CREATE TABLE meta (
meta_id INTEGER PRIMARY KEY AUTOINCREMENT,
meta_key VARCHAR (200),
meta_value VARCHAR (200)
);
-- Table: show
CREATE TABLE show (
show_id INTEGER PRIMARY KEY AUTOINCREMENT,
date STRING,
venue VARCHAR (500),
city VARCHAR (500),
state VARCHAR (100),
date_last_modified INTEGER DEFAULT (datetime('now') ),
artist VARCHAR (50)
);
-- Table: show_song
CREATE TABLE show_song (
show_song_id INTEGER PRIMARY KEY AUTOINCREMENT,
show_id INTEGER REFERENCES show (show_id),
song_id INTEGER REFERENCES song (song_id),
track_number DECIMAL,
date_last_modified INTEGER DEFAULT (datetime('now') ),
modifier VARCHAR (200)
);
-- Table: song
CREATE TABLE song (
song_id INTEGER PRIMARY KEY AUTOINCREMENT,
title VARCHAR (500),
date_last_modified INTEGER DEFAULT (datetime('now') )
);
-- Trigger: SHOW_SONG_update_date_last_modified
CREATE TRIGGER SHOW_SONG_update_date_last_modified
AFTER UPDATE OF show_id,
song_id,
track_number,
modifier
ON show_song
FOR EACH ROW
BEGIN
UPDATE show
SET date_last_modified = datetime('now')
WHERE show_song_id = NEW.show_song_id;
END;
-- Trigger: SHOW_update_date_last_modified
CREATE TRIGGER SHOW_update_date_last_modified
AFTER UPDATE OF date,
venue,
city,
state,
artist
ON show
FOR EACH ROW
BEGIN
UPDATE show
SET date_last_modified = datetime('now')
WHERE show_id = NEW.show_id;
END;
-- Trigger: SONG_update_date_last_modified
CREATE TRIGGER SONG_update_date_last_modified
AFTER UPDATE OF title
ON song
FOR EACH ROW
BEGIN
UPDATE song
SET date_last_modified = datetime('now')
WHERE song_id = OLD.song_id;
END;
-- View: database_last_modified
CREATE VIEW database_last_modified AS
SELECT MAX(date) AS database_last_modified
FROM (
SELECT MAX(date_last_modified) AS date
FROM song
UNION ALL
SELECT MAX(date_last_modified) AS date
FROM show
UNION ALL
SELECT MAX(date_last_modified) AS date
FROM show_song
);
COMMIT TRANSACTION;
PRAGMA foreign_keys = on;
--
-- File generated with SQLiteStudio v3.3.3 on Sat Oct 30 19:29:53 2021
--
-- Text encoding used: System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;
-- Table: meta
CREATE TABLE meta (
meta_id INTEGER PRIMARY KEY AUTOINCREMENT,
meta_key VARCHAR (200),
meta_value VARCHAR (200)
);
INSERT INTO meta (
meta_id,
meta_key,
meta_value
)
VALUES (
1,
'schema_version',
'1.0.0'
);
INSERT INTO meta (
meta_id,
meta_key,
meta_value
)
VALUES (
2,
'database_repo',
'https://github.com/Syco54645/TagBot.Database'
);
INSERT INTO meta (
meta_id,
meta_key,
meta_value
)
VALUES (
3,
'database_name',
'dmb'
);
COMMIT TRANSACTION;
PRAGMA foreign_keys = on;