oracle语句 select count(*) from userinfo for update 不对为什么,聚合函数不能锁定吗????????

2024-12-27 01:50:43
推荐回答(4个)
回答1:

这个句子不需要在表上面加锁,所以不需要使用FOR UPDATE来控制并发访问。
很想把表锁住再操作的话,直接LOCK TABLE,但是首先要弄清楚为啥要锁表,没有必要控制并发访问,你非要去控制,就会自己弄出来并发问题了。

回答2:

聚合函数不能锁定,不是很理解为什么并发、锁定。反正是想得到一个同样的结果吧?
可以按某个时间点查询吧
select *from table_name as of timestamp to_date('20101217 00:00:00','yyyymmdd hh24:mi:ss').
如果一定要加锁,直接加锁,不要写聚合函数,加锁和查询分开两个sql来写

回答3:

for update不能和聚合函数一起使用。

可以用:
select * from userinfo for update;
select count(*) from userinfo;
commit;

回答4:

你是用来统计的吧,不能加锁
select count(*) from userinfo 这样应该就可以了