@@ -36,6 +36,11 @@ CREATE TABLE `audit_log` (
36
36
` recipient` varchar (128 ) NOT NULL
37
37
) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_general_ci;
38
38
39
+ CREATE TABLE user_last_logins (
40
+ ` operator` varchar (128 ) NOT NULL ,
41
+ ` last_login` timestamp NOT NULL
42
+ ) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_general_ci;
43
+
39
44
CREATE TABLE `events ` (
40
45
` id` int (11 ) NOT NULL ,
41
46
` operator` varchar (128 ) NOT NULL ,
@@ -138,6 +143,9 @@ ALTER TABLE `account_deletion_requests`
138
143
ALTER TABLE ` audit_log`
139
144
ADD PRIMARY KEY (` id` );
140
145
146
+ ALTER TABLE ` user_last_logins`
147
+ ADD PRIMARY KEY (` operator` );
148
+
141
149
ALTER TABLE ` events`
142
150
ADD PRIMARY KEY (` id` );
143
151
@@ -211,6 +219,24 @@ ALTER TABLE `sso_log`
211
219
MODIFY ` id` int (10 ) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT= 8 ;
212
220
COMMIT ;
213
221
222
+ -- --------------------------------------------------------
223
+
224
+ --
225
+ -- automatically update `user_last_logins` from `audit_log`
226
+ --
227
+ DELIMITER //
228
+ CREATE TRIGGER update_last_login
229
+ AFTER INSERT ON audit_log
230
+ FOR EACH ROW
231
+ BEGIN
232
+ IF NEW .action_type = ' user_login' THEN
233
+ INSERT INTO user_last_logins (operator, last_login)
234
+ VALUES (NEW .operator , NEW .timestamp )
235
+ ON DUPLICATE KEY UPDATE last_login = NEW .timestamp ;
236
+ END IF;
237
+ END;//
238
+ DELIMITER ;
239
+
214
240
/* !40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */ ;
215
241
/* !40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */ ;
216
242
/* !40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */ ;
0 commit comments