5.6. 数据库审计表

简介:

与上一章节所提到的历史表不同,历史表需要经常翻查所以我们需要用到索引。审计表通常是数据归档,不允许修改,且基本上很少访问。

		
CREATE TABLE `order` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '订单ID',
  `name` varchar(45) NOT NULL COMMENT '订单名称',
  `price` float NOT NULL COMMENT '价格',
  `ctime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表'		
		
		

基于 order 表创建 order_audit 审计表

		
create table order_audit engine=archive as select * from `order`;
		
		

order_audit 表结构如下

		
CREATE TABLE `order_audit` (
  `id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '订单ID',
  `name` varchar(45) NOT NULL COMMENT '订单名称',
  `price` float NOT NULL COMMENT '价格',
  `ctime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=ARCHIVE DEFAULT CHARSET=utf8		
		
		

创建插入和更新触发器,用于插入和修改的时候同事写入一份到归档表中。

		
DROP TRIGGER IF EXISTS `test`.`order_AFTER_INSERT`;

DELIMITER $$
USE `test`$$
CREATE DEFINER=`dba`@`%` TRIGGER `test`.`order_AFTER_INSERT` AFTER INSERT ON `order` FOR EACH ROW
BEGIN
	INSERT INTO order_audit SELECT * FROM `order` WHERE id = NEW.id; 
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS `test`.`order_AFTER_UPDATE`;

DELIMITER $$
USE `test`$$
CREATE DEFINER=`dba`@`%` TRIGGER `test`.`order_AFTER_UPDATE` AFTER UPDATE ON `order` FOR EACH ROW
BEGIN
	INSERT INTO order_audit SELECT * FROM `order` WHERE id = NEW.id; 
END$$
DELIMITER ;
	





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

目录
相关文章
|
2月前
|
存储 数据库
为什么需要数据库
为什么需要数据库。
16 4
|
8月前
|
关系型数据库 Linux BI
数据库的一些知识
数据库的一些知识
28 0
|
13天前
|
数据库
数据库视频(四)
数据库视频(四)
17 0
|
13天前
|
XML SQL 数据库
数据库视频(三)
数据库视频(三)
12 0
|
1月前
|
关系型数据库 MySQL 数据库
数据库(三)
数据完整性是数据库管理中的关键概念,确保数据的准确和一致。主要包括: 1. 实体完整性:通过主键(唯一且非空)来标识表中的每条记录,如创建`test2`表时设置`n1`为主键。 2. 创建表`test3`时,`n1`和`n2`组合成为主键,确保多字段的唯一性。 3. 唯一约束:用于保证列值的唯一性,如在`test1`中添加对`n2`的唯一约束,或创建`test4`时`n1`和`n2`的组合值唯一。 4. 引用完整性:通过外键约束实现,如`emp`表的`dept_id`引用`dept`表的`id`,确保数据间的关联合法性。外键可以有级联操作,如`on delete cascade`和`o
12 0
|
4月前
|
存储 SQL 关系型数据库
初识数据库
初识数据库
|
10月前
|
数据库
数据库1-3章小总结
数据库1-3章小总结
32 0
|
9月前
|
SQL Java 数据库连接
H2数据库相关知识
H2数据库是一个嵌入式关系数据库管理系统(RDBMS),它以纯Java编写,支持SQL和JDBC标准。H2数据库具有高性能、轻量级、易于使用和部署的特点。它可以作为内存数据库或持久化数据库使用,并且支持多种模式,包括嵌入式模式、服务器模式和混合模式。H2数据库还提供了一些高级功能,如触发器、存储过程和内置函数,使开发者能够更灵活地操作数据。
|
9月前
|
存储 监控 数据处理
数据库
5.6.1 广播幻灯片 PowerPoint 2010新增了“广播幻灯片”功能,使得用户能够与任何人在任何位置轻松共享演示文稿。 打开要共享的演示文稿,切换到“幻灯片放映”选项卡,单击“广播幻灯片”按钮,将弹出“广播幻灯片”对话框 5.6.2 演示文稿的网上发布 用户可以将制作好的演示文稿发布到Web,这样用户和访问群体只要连接到Web,就可以对演示文稿进行查看和编辑。 第六部分 数据库技术与Access 2010 6.1.1 数据库的基本概念 1.数据 数据是指存储在某一种媒体上能够识别的物理符号 2.数据处理 数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总
|
10月前
|
SQL 数据库
数据库—耿建玲视频总结(一)
基本上每一个材料开始都有其介绍发展史的,了解一下发展史可以培养我们一部分的兴趣,然后就是SQL server的安装介绍,这个在之前我们已经亲身实践了安装的过程,并且还为这安装问题苦恼过好久呢