一个奇怪的问题,帮忙看看!

[复制链接]
查看11 | 回复5 | 2007-8-14 09:10:50 | 显示全部楼层 |阅读模式
表DUPES有7条记录,现在删除NAME字段有重复的,只保留一条。
删除之后,我ROLLBACK,再查,表怎么空了?
SQL> select * from dupes;
ID NAME
---------- ----------
1 NAPOLEON
2 DYNAMITE
3 DYNAMITE
4 SHE SELLS
5 SEA SHELLS
6 SEA SHELLS
7 SEA SHELLS
7 rows selected.
SQL> delete from dupes where id not in ( select min(id) from dupes group by name ) ;
3 rows deleted.
SQL> select * from dupes;
ID NAME
---------- ----------
1 NAPOLEON
2 DYNAMITE
4 SHE SELLS
5 SEA SHELLS
SQL> rollback;
Rollback complete.
SQL> select * from dupes;
no rows selected
回复

使用道具 举报

千问 | 2007-8-14 09:10:50 | 显示全部楼层
不可能吧
回复

使用道具 举报

千问 | 2007-8-14 09:10:50 | 显示全部楼层
有其他人删除了!
回复

使用道具 举报

千问 | 2007-8-14 09:10:50 | 显示全部楼层
临时表?
回复

使用道具 举报

千问 | 2007-8-14 09:10:50 | 显示全部楼层
几种原因:
1,事务临时表,有rollback则表中数据清空
2,在你select * from 之前,你可能有其他的操作,这些其他的操作并没有提交,导致你rollback的时候回到了更上边的point
3,在你rollback和select之间,别人对这个表处理了


回复

使用道具 举报

千问 | 2007-8-14 09:10:50 | 显示全部楼层
我看是 临时表的可能性比较大哦哦.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行