@@ -51,6 +51,17 @@ CREATE TABLE `audit_log` (
51
51
52
52
-- --------------------------------------------------------
53
53
54
+ --
55
+ -- Table structure for table `user_last_logins`
56
+ --
57
+
58
+ CREATE TABLE user_last_logins (
59
+ ` operator` varchar (768 ) NOT NULL ,
60
+ ` last_login` timestamp NOT NULL
61
+ ) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_general_ci;
62
+
63
+ -- --------------------------------------------------------
64
+
54
65
--
55
66
-- Table structure for table `events`
56
67
--
@@ -234,6 +245,12 @@ ALTER TABLE `account_deletion_requests`
234
245
ALTER TABLE ` audit_log`
235
246
ADD PRIMARY KEY (` id` );
236
247
248
+ --
249
+ -- Indexes for table `user_last_logins`
250
+ --
251
+ ALTER TABLE ` user_last_logins`
252
+ ADD PRIMARY KEY (` operator` );
253
+
237
254
--
238
255
-- Indexes for table `events`
239
256
--
@@ -383,6 +400,24 @@ ALTER TABLE `sso_log`
383
400
MODIFY ` id` int (10 ) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT= 8 ;
384
401
COMMIT ;
385
402
403
+ -- --------------------------------------------------------
404
+
405
+ --
406
+ -- automatically update `user_last_logins` from `audit_log`
407
+ --
408
+ DELIMITER //
409
+ CREATE TRIGGER update_last_login
410
+ AFTER INSERT ON audit_log
411
+ FOR EACH ROW
412
+ BEGIN
413
+ IF NEW .action_type = ' user_login' THEN
414
+ INSERT INTO user_last_logins (operator, last_login)
415
+ VALUES (NEW .operator , NEW .timestamp )
416
+ ON DUPLICATE KEY UPDATE last_login = NEW .timestamp ;
417
+ END IF;
418
+ END;//
419
+ DELIMITER ;
420
+
386
421
/* !40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */ ;
387
422
/* !40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */ ;
388
423
/* !40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */ ;
0 commit comments