<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用 MySQL 觸發器可以記錄哪些使用者、什麼時間對資料表進行了增、刪、改操作。如果執行刪除操作,則記錄刪除之前的資料記錄;如果執行更新操作,記錄更新之前的資料記錄。
-- 建立使用者資料表:emp DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `emp_id` int(11) AUTO_INCREMENT COMMENT '員工id', `emp_name` char(50) NOT NULL DEFAULT '' COMMENT '員工姓名', `birth` date COMMENT '出生日期', `salary` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '工資', `comm` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '獎金', `phone` char(20) NOT NULL DEFAULT '' COMMENT '電話', `addr` varchar(200) NOT NULL DEFAULT '' COMMENT '地址', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入記錄的時間', `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最後更新記錄的時間', PRIMARY KEY (`emp_id`), KEY `idx_empname` (`emp_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '員工資訊資料表'; -- 檢視表結構 mysql> desc emp; +------------+---------------+------+-----+-------------------+------------------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------+------+-----+-------------------+------------------------+ | emp_id | int(11) | NO | PRI | NULL | auto_increment | | emp_name | char(50) | NO | MUL | | | | birth | date | YES | | NULL | | | salary | decimal(10,2) | NO | | 0.00 | | | comm | decimal(10,2) | NO | | 0.00 | | | phone | char(20) | NO | | | | | addr | varchar(200) | NO | | | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | | | updated_at | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +------------+---------------+------+-----+-------------------+------------------------+ 9 rows in set (0.00 sec) -- 建立操作紀錄檔表:emp_log DROP TABLE IF EXISTS `emp_log`; CREATE TABLE `emp_log` ( `emplog_id` int(11) AUTO_INCREMENT COMMENT '操作紀錄檔id', `operate_type` char(20) COMMENT '操作型別:insert(插入)、delete(刪除)、update(更新)', `operate_user` char(50) COMMENT '執行操作的使用者名稱稱', `operate_time` datetime COMMENT '操作時間', `emp_id` int(11) COMMENT '員工id', `emp_name` char(50) COMMENT '員工姓名', `birth` date COMMENT '出生日期', `salary` decimal(10,2) COMMENT '工資', `comm` decimal(10,2) COMMENT '獎金', `phone` char(20) COMMENT '電話', `addr` varchar(200) COMMENT '地址', PRIMARY KEY (`emplog_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '員工操作紀錄檔資訊表'; -- 檢視表結構 mysql> desc emp_log; +--------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+----------------+ | emplog_id | int(11) | NO | PRI | NULL | auto_increment | | operate_type | char(20) | YES | | NULL | | | operate_user | char(50) | YES | | NULL | | | operate_time | datetime | YES | | NULL | | | emp_id | int(11) | YES | | NULL | | | emp_name | char(50) | YES | | NULL | | | birth | date | YES | | NULL | | | salary | decimal(10,2) | YES | | NULL | | | comm | decimal(10,2) | YES | | NULL | | | phone | char(20) | YES | | NULL | | | addr | varchar(200) | YES | | NULL | | +--------------+---------------+------+-----+---------+----------------+ 11 rows in set (0.01 sec)
在 emp 表中插入記錄時,把執行插入操作的使用者名稱、操作型別(INSERT)、操作時間以及記錄的內容新增到操作紀錄檔表(emp_log)中。
DROP TRIGGER IF EXISTS `trigger_after_insert_emp`; delimiter // create trigger trigger_after_insert_emp after insert on emp for each row begin insert into emp_log( operate_type, operate_user, operate_time, emp_id, emp_name, birth, salary, comm, phone, addr ) values( 'INSERT', user(), now(), new.emp_id, new.emp_name, new.birth, new.salary, new.comm, new.phone, new.addr ); end // delimiter ;
在 emp 表中更新記錄時,把執行更新操作的使用者名稱、操作型別(UPDATE)、操作時間以及更新之前記錄的內容新增到操作紀錄檔表(emp_log)中。
DROP TRIGGER IF EXISTS `trigger_after_update_emp`; delimiter // create trigger trigger_after_update_emp after update on emp for each row begin insert into emp_log( operate_type, operate_user, operate_time, emp_id, emp_name, birth, salary, comm, phone, addr ) values( 'UPDATE', user(), now(), old.emp_id, old.emp_name, old.birth, old.salary, old.comm, old.phone, old.addr ); end // delimiter ;
在 emp 表中刪除記錄時,把執行刪除操作的使用者名稱、操作型別(DELETE)、操作時間以及刪除之前記錄的內容新增到操作紀錄檔表(emp_log)中。
DROP TRIGGER IF EXISTS `trigger_after_delete_emp`; delimiter // create trigger trigger_after_delete_emp after delete on emp for each row begin insert into emp_log( operate_type, operate_user, operate_time, emp_id, emp_name, birth, salary, comm, phone, addr ) values( 'DELETE', user(), now(), old.emp_id, old.emp_name, old.birth, old.salary, old.comm, old.phone, old.addr ); end // delimiter ;
/* insert into emp(emp_name,birth,salary,comm,phone,addr) values('劉紅','1988-12-3',5000,1200,'13673521212','河南省新鄉市'), ('王濤','1984-8-21',6000,700,'13755440012','河南省鄭州市'), ('張靜','1992-10-31',5500,800,'13073526644','河南省安陽市'); */ mysql> insert into emp(emp_name,birth,salary,comm,phone,addr) -> values('劉紅','1988-12-3',5000,1200,'13673521212','河南省新鄉市'), -> ('王濤','1984-8-21',6000,700,'13755440012','河南省鄭州市'), -> ('張靜','1992-10-31',5500,800,'13073526644','河南省安陽市'); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 -- 查詢 emp 表中的資料 mysql> select * from emp; +--------+----------+------------+---------+---------+-------------+--------------------+---------------------+---------------------+ | emp_id | emp_name | birth | salary | comm | phone | addr | created_at | updated_at | +--------+----------+------------+---------+---------+-------------+--------------------+---------------------+---------------------+ | 1 | 劉紅 | 1988-12-03 | 5000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | 2022-12-04 15:40:08 | 2022-12-04 15:40:08 | | 2 | 王濤 | 1984-08-21 | 6000.00 | 700.00 | 13755440012 | 河南省鄭州市 | 2022-12-04 15:40:08 | 2022-12-04 15:40:08 | | 3 | 張靜 | 1992-10-31 | 5500.00 | 800.00 | 13073526644 | 河南省安陽市 | 2022-12-04 15:40:08 | 2022-12-04 15:40:08 | +--------+----------+------------+---------+---------+-------------+--------------------+---------------------+---------------------+ 3 rows in set (0.00 sec) -- 查詢 emp_log 表中的資料 mysql> select * from emp_log; +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ | emplog_id | operate_type | operate_user | operate_time | emp_id | emp_name | birth | salary | comm | phone | addr | +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ | 1 | INSERT | root@localhost | 2022-12-04 15:40:08 | 1 | 劉紅 | 1988-12-03 | 5000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | | 2 | INSERT | root@localhost | 2022-12-04 15:40:08 | 2 | 王濤 | 1984-08-21 | 6000.00 | 700.00 | 13755440012 | 河南省鄭州市 | | 3 | INSERT | root@localhost | 2022-12-04 15:40:08 | 3 | 張靜 | 1992-10-31 | 5500.00 | 800.00 | 13073526644 | 河南省安陽市 | +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ 3 rows in set (0.01 sec)
-- 更新 emp 表中的資料(更新了兩條記錄) mysql> update emp set salary = salary + 1000 where salary < 6000; Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 -- 查詢 emp 表中的資料 mysql> select * from emp; +--------+----------+------------+---------+---------+-------------+--------------------+---------------------+---------------------+ | emp_id | emp_name | birth | salary | comm | phone | addr | created_at | updated_at | +--------+----------+------------+---------+---------+-------------+--------------------+---------------------+---------------------+ | 1 | 劉紅 | 1988-12-03 | 6000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | 2022-12-04 15:40:08 | 2022-12-04 15:47:56 | | 2 | 王濤 | 1984-08-21 | 6000.00 | 700.00 | 13755440012 | 河南省鄭州市 | 2022-12-04 15:40:08 | 2022-12-04 15:40:08 | | 3 | 張靜 | 1992-10-31 | 6500.00 | 800.00 | 13073526644 | 河南省安陽市 | 2022-12-04 15:40:08 | 2022-12-04 15:47:56 | +--------+----------+------------+---------+---------+-------------+--------------------+---------------------+---------------------+ 3 rows in set (0.00 sec) -- 查詢 emp_log 表中的資料 mysql> select * from emp_log; +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ | emplog_id | operate_type | operate_user | operate_time | emp_id | emp_name | birth | salary | comm | phone | addr | +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ | 1 | INSERT | root@localhost | 2022-12-04 15:40:08 | 1 | 劉紅 | 1988-12-03 | 5000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | | 2 | INSERT | root@localhost | 2022-12-04 15:40:08 | 2 | 王濤 | 1984-08-21 | 6000.00 | 700.00 | 13755440012 | 河南省鄭州市 | | 3 | INSERT | root@localhost | 2022-12-04 15:40:08 | 3 | 張靜 | 1992-10-31 | 5500.00 | 800.00 | 13073526644 | 河南省安陽市 | | 4 | UPDATE | root@localhost | 2022-12-04 15:47:56 | 1 | 劉紅 | 1988-12-03 | 5000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | | 5 | UPDATE | root@localhost | 2022-12-04 15:47:56 | 3 | 張靜 | 1992-10-31 | 5500.00 | 800.00 | 13073526644 | 河南省安陽市 | +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ 5 rows in set (0.01 sec)
-- 刪除 emp 表中的資料(刪除了兩條記錄) mysql> delete from emp where salary = 6000; Query OK, 2 rows affected (0.02 sec) -- 查詢 emp 表中的資料 mysql> select * from emp; +--------+----------+------------+---------+--------+-------------+--------------------+---------------------+---------------------+ | emp_id | emp_name | birth | salary | comm | phone | addr | created_at | updated_at | +--------+----------+------------+---------+--------+-------------+--------------------+---------------------+---------------------+ | 3 | 張靜 | 1992-10-31 | 6500.00 | 800.00 | 13073526644 | 河南省安陽市 | 2022-12-04 15:40:08 | 2022-12-04 15:47:56 | +--------+----------+------------+---------+--------+-------------+--------------------+---------------------+---------------------+ 1 row in set (0.00 sec) -- 查詢 emp_log 表中的資料 mysql> select * from emp_log; +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ | emplog_id | operate_type | operate_user | operate_time | emp_id | emp_name | birth | salary | comm | phone | addr | +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ | 1 | INSERT | root@localhost | 2022-12-04 15:40:08 | 1 | 劉紅 | 1988-12-03 | 5000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | | 2 | INSERT | root@localhost | 2022-12-04 15:40:08 | 2 | 王濤 | 1984-08-21 | 6000.00 | 700.00 | 13755440012 | 河南省鄭州市 | | 3 | INSERT | root@localhost | 2022-12-04 15:40:08 | 3 | 張靜 | 1992-10-31 | 5500.00 | 800.00 | 13073526644 | 河南省安陽市 | | 4 | UPDATE | root@localhost | 2022-12-04 15:47:56 | 1 | 劉紅 | 1988-12-03 | 5000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | | 5 | UPDATE | root@localhost | 2022-12-04 15:47:56 | 3 | 張靜 | 1992-10-31 | 5500.00 | 800.00 | 13073526644 | 河南省安陽市 | | 6 | DELETE | root@localhost | 2022-12-04 15:52:21 | 1 | 劉紅 | 1988-12-03 | 6000.00 | 1200.00 | 13673521212 | 河南省新鄉市 | | 7 | DELETE | root@localhost | 2022-12-04 15:52:21 | 2 | 王濤 | 1984-08-21 | 6000.00 | 700.00 | 13755440012 | 河南省鄭州市 | +-----------+--------------+----------------+---------------------+--------+----------+------------+---------+---------+-------------+--------------------+ 7 rows in set (0.00 sec)
到此這篇關於MySQL 使用觸發器記錄使用者的操作紀錄檔的文章就介紹到這了,更多相關mysql記錄使用者的操作紀錄檔內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45