mysql添加timestamp有什么用_mysql中timestamp的使用
mysql中timestamp的使用
mysql> CREATE TABLE t1 (
-> id mediumint(9) NOT NULL auto_increment,
-> name char(11) default NULL,
-> rq timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
-> PRIMARY KEY (id)
-> ) ;
Query OK, 0 rows affected (0.04 sec)
mysql> select * from t1; +----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 1 | a | 2008-03-22 10:36:30 |
| 2 | b | 2008-03-22 10:36:33 |
+----+------+---------------------+
2 rows in set (0.00 sec)
mysql> update t1 set name='f'where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from t1;
+----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 1 | a | 2008-03-22 10:36:30 |
| 2 | f | 2008-03-22 10:37:04 |
+----+------+---------------------+
2 rows in set (0.00 sec)
注意:id=2的字段的日期字段值由“2008-03-22 10:36:33”自动变为了“”2008-03-22 10:37:04!
★思考:rq字段自动变化有什么好处呢?
★解决:现在要根据两个表找出哪些记录变化了,哪些记录是增加的。
演示步骤:
★将t1表备份为t2表,注意备份表t2与t1表中的rq字段值也是完全相同的:
mysql> create table t2 as select * from t1
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from t2;
+----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 1 | a | 2008-03-22 10:36:30 |
| 2 | f | 2008-03-22 10:37:04 |
+----+------+---------------------+
2 rows in set (0.00 sec)
★修改id=2的字段:
mysql> update t1 set name='g'where id=2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
★增加新记录:
mysql> insert into t1(name) values('h');
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 1 | a | 2008-03-22 10:36:30 |
| 2 | g | 2008-03-22 10:43:38 |
| 3 | h | 2008-03-22 10:44:46 |
+----+------+---------------------+
3 rows in set (0.00 sec)
★查出新增加的记录(ID不在t2表中的):
mysql> select a.*
-> from t1 a
-> where not exists
-> (
-> select b.*
-> from t2 b
-> where a.id=b.id
-> );
+----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 3 | h | 2008-03-22 10:44:46 |
+----+------+---------------------+
1 row in set (0.00 sec)
★说明:查询哪些记录是被修改过的(ID相同而RQ不同)
mysql> select a.*
-> from t1 a
-> where exists
-> (
-> select b.*
-> from t2 b
-> where a.id=b.id
-> and a.rq!=b.rq
-> )
-> ;
+----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 2 | g | 2008-03-22 10:43:38 |
+----+------+---------------------+
1 row in set (0.00 sec)
★同理,也可以删除哪些记录是被删除的(id在t2中却不在t1中的):
mysql> delete from t1 where id=2;
Query OK, 1 row affected (0.00 sec)
mysql> select a.*
-> from t2 a
-> where not exists
-> (
-> select b.*
-> from t1 b
-> where a.id=b.id
-> );
+----+------+---------------------+
| id | name | rq |
+----+------+---------------------+
| 2 | f | 2008-03-22 10:37:04 |
+----+------+---------------------+
1 row in set (0.00 sec)
说明:
1、在数据仓库系统的设计中,经常会将系统1的定期送到系统2中中,但是系统1中的数据有增加的、删除的和修改的。其中,哪些记录修改的,一直是比较难于解决的问题。
2、在Oracle、SQLServer都有类似的字段,所以上面的方法是通用的。
来源:hi.baidu.com/it培训网
分享到:
2010-03-15 14:51
浏览 1552
分类:数据库
评论
mysql添加timestamp有什么用_mysql中timestamp的使用相关推荐
- mysql timestamp 默认值是什么#039;_MYSQL中TIMESTAMP类型的默认值
MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样.1.自动UPDATE 和INSERT 到当前的时间:表:/*DDL Information For - test.t1*/----- ...
- mysql时间戳是什么意思_mysql中TIMESTAMP时间戳详解
在mysql数据库中,时间戳TIMESTAMP有如下的一些变体: 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在 ...
- mysql截取前几个字符串_mysql中截取指定字符前后的字符串
使用SUBSTRING_INDEX()函数 substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:分隔符计数 例子 取出上述表中数组 ...
- mysql添加字段基本语法格式_MySQL添加字段 修改字段 删除字段-Mysql常用命令-吾爱编程网...
作为程序员mysql的操作是必须要学会的,有时候我们需要使用命令行对数据表进行操作,接下来吾爱编程就为大家介绍一下MySQL 添加字段.修改字段.删除字段等常用命令,有需要的小伙伴可以参考一下: 1. ...
- mysql什么情况会加意向锁_MySQL中的锁4-插入意向锁和自增锁
插入意向锁(Insert Intention Lock) 插入意向锁本质上可以看成是一个Gap Lock 普通的Gap Lock 不允许 在 (上一条记录,本记录) 范围内插入数据 插入意向锁Gap ...
- mysql数据库添加数据语句怎么写_mysql中多种插入数据的语句
摘抄自:https://yjclsx.blog.csdn.net/article/details/83898545 mysql中常用的三种插入数据的语句 insert into表示插入数据,数据库会检 ...
- mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程
MysqL 列子查询及 IN.ANY.SOME 和 ALL 操作符的使用MysqL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如 ...
- mysql添加字段时定义候选键_MySQL 表约束
约束概述 对数据表中数据的限制条件叫表的约束,目的是为了保证表中记录的完整和有效.例如非空.唯一等. 查看约束 1 通过查看建表语句 查看表中的约束 show create table tb_name ...
- mysql两个字段相减_MySQL 中NULL和空值的区别?
作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值.那你知道它们有什么区别吗? 学不动了,也不想知道它们有什么区别.大兄弟,不行啊,要面试! 前些天我 ...
最新文章
- MySQL Online DDL的改进与应用
- IHttpModule.Init方法被执行多次的原因
- rootca.pem 微信支付api 秘钥验证
- jquery官网打不开难以下载,不妨试试webjars
- Python练习-从小就背不下来的99乘法表
- c语言打印空心等腰梯形乐学,C语言做激光发射
- 仿Jquery链式操作的xml操作类
- 基于深度学习模型WideDeep的推荐
- centos java mvn_Linux(centos7)安装JDK1.8与maven
- Akka适用于分布式系统《five》译
- 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造
- Ubuntu16.04 + TITAN XP 深度学习服务器环境搭建(驱动安装,CUNN7.6.5, CUDA9.0) (避坑篇)
- AR技术从无到有浅谈AR市的未来场发展
- Vista硬盘安装详细图解
- C++实验3-税收计算
- 计算机通信中ip,macid的主要作用和区别
- liquibase-数据库脚本升级管理
- “左手画圆,右手画方”
- 复数/复频域计算器介绍(解方程组)
- 哈工大计算金融本科新专业 | 全国首发
热门文章
- LightOJ - 1140 How Many Zeroes?
- JavaScript基础5——关于ECMAscript的函数
- SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- flex和js进行参数传递
- C++学习——C++中的四个智能指针
- linux的驱动开发——字符设备驱动
- python取数字第一位数_python基础:8.切片和缩进
- 9008刷机怎么刷_OV快捷进入高通进9008或fastboot模式刷机解锁,和MTK关机解锁
- 实现两个点集的欧式距离和cos距离和索引值寻找(含有两种解法,for循环和矩阵操作)
- BPP 相关——02