求助,oracle的sysdate问题 我有一张表,里面的date属性设置了唯一约束,这样写存储过程的时候就出了问题,当连续插入两条sysdate的时候,调试时没有问题,因为会有时间间隔,而直接运行的时候速度太快,sysdate来不及变,就会违反唯一约束条件,插入失败,谁知道怎么解决这个问题,我的表结构跟约束是不可能变的,我在想可不可以让这两条数据插入的时候中间有个延时之类的功能,这样sysdate就不会一样了,谁知道怎么解决啊????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在PL/SQL代码中使用延时操作。DBMS_LOKC.SLEEP(毫秒数); 可以在PL/SQL代码中使用延时操作。DBMS_LOKC.SLEEP(毫秒数); 顶下:select systimestamp from dual; lz万万不可延时,此乃下下之策啊.别人努力想把performance提高,lz反其道而行之,必将遭人唾骂.修改字段类型为timestamp,插入数据时使用systimestamp即可 没有必要延时,两个解决方向:1. 如大家所言,换成时间戳2. 不使用sysdate,使用程序更改该时间点,例如:insert into table1 (dt) select sysdate + rownum/(24*60*60) from table2; --每条记录延时1秒 使用systimestamp又如何,楼主的表结构不能改变,存储时还是原来的Date类型,秒后面的数据又不能存储进去。 主要是靠需求,确认有那个需求的话,改为timestamp值为:systimestamp 毫秒级的! 就用timestamp理论上也有问题,不能排除有多个请求时间同时进行,尤其是遇到访问数据库的线程比较多时,时间相同的概率很大,这个只能从需求上来进行规避。时间作为唯一性这种需求还真少见哈 树形结构.通过子节点获取所有父节点 oracle +c# 存储扩容oracle数据库迁移请教 高分请教,Rman全备份的bat,每次执行前都要删除之前的脚本for(delete).怎么写。。。 oracle中以下两个命令的区别??? 存储过程中使用while 的问题 dbca没有反应 本人初次接触orcle,问一个很弱的问题:如何在vc6下通过OO4O访问orcle ? 涉及到两个表的触发器问题 如何在linux上用命令启动“managerservice”服务? 用pl/sql导出表后,原先数据库的表就没了是吗 怎么把这几个语句链接成一句
DBMS_LOKC.SLEEP(毫秒数);
DBMS_LOKC.SLEEP(毫秒数);
别人努力想把performance提高,lz反其道而行之,必将遭人唾骂.
修改字段类型为timestamp,插入数据时使用systimestamp即可
没有必要延时,两个解决方向:
1. 如大家所言,换成时间戳
2. 不使用sysdate,使用程序更改该时间点,例如:
insert into table1 (dt)
select sysdate + rownum/(24*60*60) from table2; --每条记录延时1秒
改为timestamp
值为:systimestamp 毫秒级的!