sequence创建语句:
create sequence CB_SEQUENCE
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;当用程序做插入操作时,该sequence以步长为2 增加。但是在做select CB_SEQUENCE.nextval from dual时,是以步长为1增加的。该sequence只用于一个表。奇怪啊!各位大侠指教一下为什么?
create sequence CB_SEQUENCE
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;当用程序做插入操作时,该sequence以步长为2 增加。但是在做select CB_SEQUENCE.nextval from dual时,是以步长为1增加的。该sequence只用于一个表。奇怪啊!各位大侠指教一下为什么?
解决方案 »
- 高手留步~~ 使用SQL语句 日期和当前日期
- oracle分页用rownum分页!求高手帮忙噶!
- linux下连接windows xp下的oracle出现连接超时或目的主机不可达
- 为什么网上说plsql存储过程一定比c语言、java语言写的存储过程的执行速度快而且执行效率要高呢?
- oracle连接的问题
- 求语句
- oracle9i的数据优化问题,来者有分!
- 新手问题:怎么用.sql文件把触发器等东西导入数据库?
- 谁有 pl/sql developer 5.0 的注册号??(可用就加分)
- Ora-00942:表或视图不存在,哪位大神帮忙解决下,谢了!
- 关于Oracle入门和深入学习的书籍,请大家推荐
- 关于在oracle里面查找某个方案下的所有表名称及某表下所有字段名称等等
cbctot为实体类实例
dao.update(cbctot)
{
Cb cbcto = new Cb();
cbcto.setCycleday(Long.valueOf(form.getCycleDay()));
cbcto.setMaintaindate(new FDate().getDate(PubFun.getCurrentDate()));
cbcto.setMaintaintime(PubFun.getCurrentTime());
cbcto.setMaintainer(form.getOperator());
CbId id = new CbId();
id.setDealtype("1");
id.setManagecom(form.getComCode());
cbcto.setId(id);
Cbt cbctot = new Cbt();
cbctot.setCycleday(cbcto.getCycleday());
cbctot.setMaintaindate(cbcto.getMaintaindate());
cbctot.setMaintainer(cbcto.getMaintainer());
cbctot.setMaintaintime(cbcto.getMaintaintime());
cbctot.setManagecom(form.getComCode());
cbctot.setDealtype("1"); dao.update(cbcto);
dao.update(cbctot);
}Cbt表有序列
序列在hbm.xml中
后台输出Hibernate: select CB_SEQUENCE.nextval from dual,只一回。
debug时发现:select CB_SEQUENCE.nextval from dual之后是正确数据,
但是insert into CBT 之后,又加了1,为什么呢?
我怀疑你的代码insert的时候又取了一次CB_SEQUENCE.nextval
谢谢,确实是在insert之前又CB_SEQUENCE.nextval了一次。
不是程序问题,是自己在建立sequence时,又加了一个TRIGGER。
以前没怎么试过sequence,搜了一个建立语句,就用上了。
这次学到了!不管怎样谢谢你,结贴喽!