一个事务中先插入数据,然后再查询所有数据,能查到刚才的记录吗

 我来答
enjoy就是家
2020-09-10 · TA获得超过4768个赞
知道答主
回答量:44
采纳率:0%
帮助的人:6732
展开全部

先插入再查询在事务内部的SELECT语句可以查询到数据,但是回滚后,不能查询到数据。先删除再查询。

在同一个事务中,数据需要保证一致性,也就是说,在当前的事务中,删除了就是看不到了,插入了就是多了一条数据。

但这些操作都是在当前事务内部的。对于外界是隔离的。如果我们开启事务插入一条数据,还没有提交,这时新开一个事务,去查询数据,是发现不了未提交数据的。

先插入再更新控制台打印的sql语句mybatis会将两条执行语句在同一个sqlSession中执行。先删除再查询控制台打印的sql语句。

煮酒翰林
2018-08-02 · TA获得超过279个赞
知道小有建树答主
回答量:247
采纳率:100%
帮助的人:121万
展开全部
能查到的,错误回答还能得最佳答案也是醉了。只不过事务没走完的情况下你用其他工具去数据库查是没有的。代码中查询是有你之前新增的数据的 你可以理解为预备操作,数据都已经新增出来了,只是还没commit掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine木头人1号
2017-11-01 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:42%
帮助的人:25.1万
展开全部
java中在同一db下先插入一条数据未commit,在执行查询语句是可以查到的,db使用的是jdbc,亲测是可以的,忘采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超信天空
2018-10-29
知道答主
回答量:8
采纳率:0%
帮助的人:4.3万
展开全部
可以查询到,以下是Oracle的存储过程测试代码,游标返回了一行数据2,
但是在别处查询不到该数据,因为该事务未提交。
总结:在同一个事务中,不论提交与否,变化均有效,但是跨事务时只有提交后变化才有效。
CREATE OR REPLACE Procedure p_test(Rt_Cursor Out Types.Cursortype ) Is
Begin
delete from test;
commit;
insert into test values(1);
update test set test_col=2;
Open Rt_Cursor For
select * from test;
End p_test;
下面是游标的定义
CREATE OR REPLACE Package Types As
Type Cursortype Is Ref Cursor;
End;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fishermvn
2019-10-18
知道答主
回答量:8
采纳率:0%
帮助的人:2.6万
展开全部
同一个事务内的所有操作可以理解为同一把锁,所以无论insert或者update的内容都可以被这个事务内的select读出来。其他的事务能不能读到,要看数据库的事务隔离等级。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式