commit的问题

big106 2002-10-08 04:59:07
do
select max(id_no) into :id_max from qiao_pic;
id_max=id_max+1
insert into t (t.id_no,t.detail) values (:id_max,:sle_2.text) using sqlca;

loop until sqlca.sqlcode=0
commit;
我的目的是将id-no设置成类似identity那样的连续、唯一的字段,现在的问题有2个:
1、commit怎么用,放在循环里面还是外面,是否需要在sqlcode不为0的时候rollback?
2、在调试的时候不小心,在insert后没有commit就强行关闭,导致现在表t无法使用,有解决办法吗?
...全文
73 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
big106 2002-10-09
  • 打赏
  • 举报
回复
结帖
hongqi162 2002-10-09
  • 打赏
  • 举报
回复
if sqlca.sqlcode=0 then
commmit;
else
rollback;
end if
big106 2002-10-09
  • 打赏
  • 举报
回复
没人回答我?
big106 2002-10-08
  • 打赏
  • 举报
回复
ase12
对了,如果用rollback的话循环没法写了啊?
sichuanwww 2002-10-08
  • 打赏
  • 举报
回复
big106 2002-10-08
  • 打赏
  • 举报
回复
后台是ase
ff00 2002-10-08
  • 打赏
  • 举报
回复
不会死循环吗?
hbwhwanghua 2002-10-08
  • 打赏
  • 举报
回复
如果数据量暴大而且又不一定非得作为一个事务处理呢,可以考试将commit放在循环里面,也就是每insert一次,就commit一次,以免有过多锁;否则的话只能改数据库配置,将锁的数量加大,你什么后台啊?
ice2water 2002-10-08
  • 打赏
  • 举报
回复
commit语句应放在循环外:
if sqlca.sqlcode=0 then
commmit;
else
rollback;
end if
big106 2002-10-08
  • 打赏
  • 举报
回复
commit的问题呢,要不要rollback啊?
jlandzpa 2002-10-08
  • 打赏
  • 举报
回复
kill session
big106 2002-10-08
  • 打赏
  • 举报
回复
怎么删锁呢?
asdex 2002-10-08
  • 打赏
  • 举报
回复
我不太明白,对于insert,update这样的sql语句不要commit吧?
yuanbo824 2002-10-08
  • 打赏
  • 举报
回复
表被锁了,把锁删除
big106 2002-10-08
  • 打赏
  • 举报
回复
有人知道吗?

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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