Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2880766
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: Oracle

2011-10-21 17:11:26

在ORACLE中,CREATE TABLE语句是不能回滚的。

SQL> show autocommit
autocommit OFF
SQL> create table test(id int);
表已创建。
SQL> insert into test values(1);
已创建 1 行。
SQL> select * from test;
        ID
----------
         1
SQL> rollback;
回退已完成。
SQL> select * from test;
未选定行
SQL> select table_name from user_tables
  2  where table_name='TEST';
TABLE_NAME
------------------------------------------------------------
TEST
 
新插入的记录是可以回滚的,但是表是不能回滚掉的,除非手工发出DROP TABLE语句。
 
而在DB2中,却不一样:
 
db2 => list command options
     命令行处理器选项设置
 后端进程等待时间(秒)        (DB2BQTIME) = 1
 连接至后端的重试次数           (DB2BQTRY) = 60
 请求队列等待时间(秒)        (DB2RQTIME) = 5
 输入队列等待时间(秒)        (DB2IQTIME) = 5
 命令选项                     (DB2OPTIONS) =
  选项   描述                                      当前设置
 ------  ----------------------------------------  ---------------
   -a    显示 SQLCA                                OFF
   -c    自动落实                                  OFF
   -d    检索并显示 XML 声明                       OFF
   -e    显示 SQLCODE/SQLSTATE                     OFF
   -f    读取输入文件                              OFF
   -i    显示 XML 数据并带有缩进                   OFF
   -l    将命令记录到历史记录文件中                OFF
   -m    显示受影响的行数                          OFF
   -n    除去换行字符                              OFF
   -o    显示输出                                  ON
   -p    显示交互式输入提示符                      ON
   -q    保留空格和换行符                          OFF
   -r    将输出保存到报告文件                      OFF
   -s    在命令出错时停止执行                      OFF
   -t    设置语句终止字符                          OFF
   -v    回传当前命令                              OFF
   -w    显示 FETCH/SELECT 警告消息                ON
   -x    不打印列标题                              OFF
   -z    将所有输出保存到输出文件                  OFF
db2 => select * from test
SQL0204N  "SHOUPENG.YAN.TEST" 是一个未定义的名称。  SQLSTATE=42704
db2 => create table test(id int)
DB20000I  SQL 命令成功完成。
db2 => insert into test values(1)
DB20000I  SQL 命令成功完成。
db2 => insert  into test values(2)
DB20000I  SQL 命令成功完成。
db2 => select * from test
ID
-----------
          1
          2
  2 条记录已选择。
db2 => rollback
DB20000I  SQL 命令成功完成。
db2 => select * from test
SQL0204N  "SHOUPENG.YAN.TEST" 是一个未定义的名称。  SQLSTATE=42704
db2 => list tables
表/视图     
                                                      模式
      类型  创建时间
------------------------------- --------------- ----- --------------------------
VIEW1                           SHOUPENG.YAN    V     2011-10-20-12.42.39.046002

  1 条记录已选择。
 
可以看到在DB2中先创建的表也回滚掉了。
 
看来新学一门数据库,得忘掉在其他数据库中所学的东西。
阅读(4331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~