oracle时间戳如何使用 我想在一个表里增加一个时间戳,然后数据有变化的时候相应的时间戳也改变。 1 不知道如何获得那么高精度的时间2 时间戳是否会重复3 时间戳还有什么别的用法吗?有点迷茫,请大家详解! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用timestamp类型,不会有问题不会重复估计你得写一个update触发器,以更新时间戳的值。insert时直接使用当前时间 SQL> desc tb; 名称 是否为空? 类型 ----------------------------------------- -------- ------------ ID NUMBER(5,2)SQL> alter table tb 2 add dt timestamp(6) 3 /表已更改。SQL> insert into tb(dt) values(systimestamp);已创建 1 行。SQL> select * from tb; ID----------DT----------------------------------------------------------------27-5月 -10 01.34.01.609000 下午SQL> select to_char(dt,'yyyy-mm-dd hh24:mi:ss:ff3') from tb;TO_CHAR(DT,'YYYY-MM-DDHH24:MI-----------------------------2010-05-27 13:34:01:609 我试过了 systimestamp 显示的精度为秒后6位。 大数据量插入 在我的pc上 每100-200条数据 时间戳都会重复。 对于一般的系统没什么问题,但是用户多或者一次处理成千上万条数据就不行了。 比如我update一个字段,表里数据比较多的话就会有时间戳重复。 和微软的时间戳机制不太一样。微软的更像是oracle里的序列。 你想要sqlserver里的rowversion?oracle里没有对应的东西。不过有个差不多的东西, 叫做ora_scn, 但这个东西由于不是一致读的,所以在where条件中使用时在大并发情况下就有问题。 查了一下,是:ORA_ROWSCN 这个似乎要oracle10g才支持,而且设计表的时候就要定义好,事后不能修改,如果实在没有方法我也就结贴了。 主键联合时间戳就是where里两个条件了 LZ是什么系统,有这么高的时间精度要求,6位tiamstamp不够改成9位也不行吗? 关键是批量导入和批量更新就会造成很多时间戳重复,我做过测试的。 至于9位精度会好很多,可是取不到那么精确的时间呢,systimestamp 这个只有六位啊。 同一条sql更新的数据,时间戳怎么能不一样了。在外面看来 都是同时更新的啊 联合条件就是Oracle的UNIQUE CONSTAINT.CONSTRAINT cr_name UNIQUE (Id,ts)即把Id(主键)和ts(即timestamp)联合起来作为唯一性约束条件。就是说,要Id和ts两个都一样,才认为是重复的记录。 ProC如何读写blob字段 存储过程参数问题!!! 在线求救!!动态SQL的问题!!! ORACLE 启动失败,ORA-01034 求一条sql语句 请问在Oracle中如何表示π? 急求高手帮忙!万分感激! 出问题了,要恢复,大家快帮手看看 哪有关于Oracle SQL语言的书籍下载? 请问:sqlserver中的EXECUTE在ORACLE中怎么用 Oracle 如何比较两个 Datetime 类型的大小 oracle dbms_lob.writeappend救解
不会重复
估计你得写一个update触发器,以更新时间戳的值。insert时直接使用当前时间
SQL> desc tb;
名称 是否为空? 类型
----------------------------------------- -------- ------------
ID NUMBER(5,2)SQL> alter table tb
2 add dt timestamp(6)
3 /表已更改。SQL> insert into tb(dt) values(systimestamp);已创建 1 行。SQL> select * from tb; ID
----------
DT
----------------------------------------------------------------27-5月 -10 01.34.01.609000 下午
SQL> select to_char(dt,'yyyy-mm-dd hh24:mi:ss:ff3') from tb;TO_CHAR(DT,'YYYY-MM-DDHH24:MI
-----------------------------
2010-05-27 13:34:01:609
查了一下,是:ORA_ROWSCN
CONSTRAINT cr_name UNIQUE (Id,ts)
即把Id(主键)和ts(即timestamp)联合起来作为唯一性约束条件。就是说,要Id和ts两个都一样,才认为是重复的记录。