4.19. 在线用户表
生活随笔
收集整理的這篇文章主要介紹了
4.19. 在线用户表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
該表的功能是顯示在線用戶,控制多點登陸,防止異常退出
CREATE TABLE IF NOT EXISTS `employees_online` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL COMMENT 'User ID',`ipaddr` varchar(15) NOT NULL COMMENT 'IP Address',`expire` datetime NOT NULL COMMENT 'Expire time',`status` enum('Login','Logout','Offline') NOT NULL DEFAULT 'Login' COMMENT 'Current Status',`message` varchar(255) NOT NULL COMMENT 'Leave a message',`ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Created Time',`mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'Modified Time',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='show listing of last logged in users';DELIMITER // CREATE DEFINER=`dba`@`192.168.%` EVENT `employees_online` ON SCHEDULE EVERY 15 MINUTE STARTS '2014-08-22 10:33:24' ON COMPLETION NOT PRESERVE ENABLE COMMENT 'Employees Online Logging' DO BEGINupdate employees_online set `status` = 'Offline' where expire < now() and ctime > DATE_ADD(now(), INTERVAL -15 MINUTE); END// DELIMITER ;SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_ENGINE_SUBSTITUTION'; DELIMITER // CREATE TRIGGER `employees_online_before_delete` BEFORE DELETE ON `employees_online` FOR EACH ROW BEGINSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Permission denied', MYSQL_ERRNO = 1001; END// DELIMITER ; SET SQL_MODE=@OLDTMP_SQL_MODE;SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_ENGINE_SUBSTITUTION'; DELIMITER // CREATE TRIGGER `employees_online_before_update` BEFORE UPDATE ON `employees_online` FOR EACH ROW BEGINSET NEW.`id` = OLD.id;SET NEW.`username` = OLD.username;SET NEW.`ipaddr` = OLD.ipaddr;SET NEW.`message` = OLD.message;SET NEW.`ctime` = OLD.ctime; END// DELIMITER ; SET SQL_MODE=@OLDTMP_SQL_MODE;登陸日志將永久保存,防止數據被刪除由觸發器employees_online_before_delete負責
防止有人撰改登陸信息,由觸發器employees_online_before_update負責,主要是防止撰改登陸名與IP地址,這樣講不能從其他電腦登陸,必須用戶Logout才能在其他電腦登陸。
原文出處:Netkiller 系列 手札
本文作者:陳景峯
轉載請與作者聯系,同時請務必標明文章原始出處和作者信息及本聲明。
總結
以上是生活随笔為你收集整理的4.19. 在线用户表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: designpatterns -- st
- 下一篇: 多文件目录下makefile文件递归执行