db2 - DDL测试

db2的DDL语句和DML语句一样,不会自动提交。
 
# session1
db2 => connect to miaomiao user db2admin using asdf
 
   数据库连接信息
 
 数据库服务器         = DB2/NT 9.5.0
 SQL 授权标识         = DB2ADMIN
 本地数据库别名       = MIAOMIAO
db2 => update command options using c off
DB20000I  UPDATE COMMAND OPTIONS命令成功完成。
db2 => create table miaomiao.test1(a int)
DB20000I  SQL命令成功完成。
db2 =>
 
# session2
db2 => describe table miaomiao.test1
(hang...)
 
# session3
db2 => select * from miaomiao.test2
(hang...)
 
直到session1发出commit命令,session2和session3才会显示出结果来。而在Oracle里,DDL是隐含了提交/回滚的。
 
那说明在db2里,DDL语句也是可以回滚的呗?继续测试:
 
# session1
db2 => create table miaomiao.test3(a int)
DB20000I  SQL命令成功完成。
 
# session2
db2 => select * from miaomiao.test3
(hang...)
 
当session1发出rollback命令后,session2就会提示表不存在:
 
# session2
db2 => select * from miaomiao.test3
SQL0204N  "MIAOMIAO.TEST3" 是一个未定义的名称。  SQLSTATE=42704
 
而在test3创建之后、提交之前它是被hang住的。
请使用浏览器的分享功能分享到微信等