oracle时间戳如何使用

zhongqq 2010-05-27 01:06:50
我想在一个表里增加一个时间戳,然后数据有变化的时候相应的时间戳也改变。
1 不知道如何获得那么高精度的时间
2 时间戳是否会重复
3 时间戳还有什么别的用法吗?

有点迷茫,请大家详解!
...全文
8843 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongqq 2012-03-02
  • 打赏
  • 举报
回复
谢谢,最近还有人回复. 不过都不是我要的答案. 结贴了.
sqlnever 2012-02-24
  • 打赏
  • 举报
回复
联合条件就是Oracle的UNIQUE CONSTAINT.
CONSTRAINT cr_name UNIQUE (Id,ts)
即把Id(主键)和ts(即timestamp)联合起来作为唯一性约束条件。就是说,要Id和ts两个都一样,才认为是重复的记录。
zhongqq 2010-06-11
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 duqiangcise 的回复:]
mark时间戳!
[/Quote]

这个不明白。
zhongqq 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 ypfe23 的回复:]
时间精度是绝对够的,问题是:插入多条记录后,提交,那么这多条记录所默认更新的时间是完全相同的!
[/Quote]

这个应该不是吧 提交的时间和插入的当时时间是没有关系的。
duqiangcise 2010-06-09
  • 打赏
  • 举报
回复
mark时间戳!
ypfe23 2010-06-08
  • 打赏
  • 举报
回复
时间精度是绝对够的,问题是:插入多条记录后,提交,那么这多条记录所默认更新的时间是完全相同的!
qin_phoenix 2010-06-08
  • 打赏
  • 举报
回复
同一条sql更新的数据,时间戳怎么能不一样了。在外面看来 都是同时更新的啊
zzyzgydotnet 2010-06-08
  • 打赏
  • 举报
回复
学习一下
zhongqq 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 iihero 的回复:]
引用 11 楼 zhongqingqiu 的回复:

这样啊, 时间上我们可以看出来是否是新的数据,主键我们怎么判断呢?

正常的表都有主键的。要根据主键值和时间戳联合条件作为判断是否是新的数据。
[/Quote]

我还是不明白你的意思,联合条件是什么条件呢?
如果要判断主键是否重复,那么时间就没什么用了。如果判断时间是否超过某个点,再判断主键是否重复,那么可能会遗漏,还请说明具体方法。
iihero 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhongqingqiu 的回复:]

这样啊, 时间上我们可以看出来是否是新的数据,主键我们怎么判断呢?
[/Quote]
正常的表都有主键的。要根据主键值和时间戳联合条件作为判断是否是新的数据。
zhongqq 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 etsilence 的回复:]
LZ是什么系统,有这么高的时间精度要求,6位tiamstamp不够改成9位也不行吗?
[/Quote]
关键是批量导入和批量更新就会造成很多时间戳重复,我做过测试的。 至于9位精度会好很多,可是取不到那么精确的时间呢,systimestamp 这个只有六位啊。
etsilence 2010-06-02
  • 打赏
  • 举报
回复
systimestamp(9)就可以有9位了。
半世码农 2010-06-01
  • 打赏
  • 举报
回复
主键联合时间戳就是where里两个条件了

[Quote=引用 8 楼 zhongqingqiu 的回复:]

主键联合时间戳 怎么定位?
[/Quote]
zhongqq 2010-06-01
  • 打赏
  • 举报
回复
记得要回复哦
etsilence 2010-06-01
  • 打赏
  • 举报
回复
LZ是什么系统,有这么高的时间精度要求,6位tiamstamp不够改成9位也不行吗?
zhongqq 2010-06-01
  • 打赏
  • 举报
回复
这样啊, 时间上我们可以看出来是否是新的数据,主键我们怎么判断呢?
zhongqq 2010-05-28
  • 打赏
  • 举报
回复
主键联合时间戳 怎么定位?
iihero 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhongqingqiu 的回复:]

这个似乎要oracle10g才支持,而且设计表的时候就要定义好,事后不能修改,如果实在没有方法我也就结贴了。
[/Quote]
一般来说,都是根据 主键 联合 时间戳来定位记录变化的。而不只是根据时间戳来记录改变
zhongqq 2010-05-28
  • 打赏
  • 举报
回复
这个似乎要oracle10g才支持,而且设计表的时候就要定义好,事后不能修改,如果实在没有方法我也就结贴了。
codearts 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 codearts 的回复:]

你想要sqlserver里的rowversion?

oracle里没有对应的东西。

不过有个差不多的东西, 叫做ora_scn, 但这个东西由于不是一致读的,所以在where条件中使用时在大并发情况下就有问题。
[/Quote]

查了一下,是:ORA_ROWSCN
加载更多回复(4)

17,092

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧