谈谈数据库里的时间戳
一直对时间戳这个概念比较模糊,相信有很多朋友也都会误认为:时间戳是一个时间字段,每次增加数据时,填入当前的时间值。其实这误导了很多朋友。
时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。
每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改
timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。
使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。如果对行进行了更改,就会更新该时间戳值。如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。若要返回数据库的当前时间戳值,请使用 @@DBTS。
在控制并发时起到作用:
用户A/B同时打开某条记录开始编辑,保存是可以判断时间戳,因为记录每次被更新时,系统都会自动维护时间戳,所以如果保存时发现取出来的时间戳与数据库中的时间戳如果不相等,说明在这个过程中记录被更新过,这样的话可以防止别人的更新被覆盖.
谈谈数据库里的时间戳相关推荐
- mysql 时间戳转换为时间_将MYSQL数据库里的时间戳转换成时间
匿名用户 1级 2015-04-02 回答 from_unixtime()是MySQL里的时间函数 select uid,userid,username,email,FROM_UNIXTIME(add ...
- oracle查看时间戳函数,oracle数据库实现获取时间戳的无参函数
oracle数据库实现获取时间戳的无参函数 代码如下所示: CREATE OR REPLACE FUNCTION GETMSTIMESTAMP RETURN NUMBER AS MSTIMESTAMP ...
- 在SQLserver数据库里设置作业的步骤
在SQLserver数据库里设置作业(对数据库的表定期进行数据清理)的步骤 1.首先,要打开sql server代理的服务,在我的电脑,右键管理的服务打开,SQL Server 代理 (MSSQLSE ...
- 77.数据库里怎么预防死锁?-80.视图索引
77.数据库里怎么预防死锁? 1.事务尽量简短 2.并发的事务尽可能按同一顺序访问对象 3.避免事务中的用户交互 4.使用低隔离级别(别动不动就上锁) 78.并发控制是为了保证事务的什么性质? ACI ...
- php 清除数据表中所有数据库,清除一个数据库里所有表的数据
如果需要清除一个数据库里所有表的数据,则可用下面命令: exec sp_MSforeachtable TRUNCATE TABLE ? ******************************** ...
- 怎样把本软件是否注册的标志加在程序里?(注:不想加在数据库里)
怎样把本软件是否注册的标志加在程序里?(注:不想加在数据库里) Delphi / Windows SDK/API http://www.delphi2007.net/DelphiDB/html/del ...
- java数据库操作如何往数据库里输入字符型变量
举个例子,往名为记录的TABLE里输入一个字符串 String str: statement.executeUpdate("INSERT INTO 记录 VALUES('"+str ...
- 数据库元数据数据字典查询_11_列出数据库里含有自增的字段
列出数据库里含有自增的字段 需求描述 需求:查询数据库里所有自增类型的字段 解决方法:通过数据字典里的字段is_identity来实现该需求. 注 ...
- 数据库元数据数据字典查询_10_列出数据库里的所有对象
列出数据库里的所有对象 需求描述 需求:查询出给定的数据库里的所有对象的信息. 解决方法:通过各个数据库里提供的数据对象相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结 ...
最新文章
- CUDA 8混合精度编程
- C# QRCode 二维码
- PHP随手记1--内置函数date
- ALEIDoc EDI(2)--一般流程
- 算法导论学习笔记 第2章 算法基础
- antd的 input有下拉_antd select下拉添加全选的按钮
- snmpset对象不可写_[Python]可变对象与多进程通信
- 敏捷武士:看敏捷高手交付卓越软件pdf
- 需要单机还是集群部署_单机、集群和分布式(微服务结构)的区别
- 修改win10我的文档下载等移动别处
- javascript 西瓜一期 03 机器语言与高级语言
- OSPF报文详解——LSA概述
- android开发中的grid控制
- 网页版微博HTML解析和提取,使用Beautiful Soup抽取网页数据,解析微博用户关注信息...
- 思科防火墙配置命令(详细命令总结归纳)
- wps2016热点永久关闭
- std::stack使用总结
- UNH-IOL获批成为首家获得OVP认证的第三方实验室
- python获取erp数据_python自学之路-数据读取
- 供应商寄售过程的实现