-
--会话A
-
conn luise/luise;
-
DROP TABLE t PURGE;
-
CREATE TABLE t AS SELECT * FROM dba_objects;
-
SELECT COUNT(*) FROM t;
-
-
COUNT(*)
-
----------
-
75515
-
-
DELETE FROM t;
-
CREATE INDEX idx_t_objectid ON t(object_id);
-
-
--登录另一个会话B, 并执行. 结论:刚才的会话已经提交了.
-
SELECT COUNT(*) FROM t;
-
-
COUNT(*)
-
----------
-
0
-
-
--在会话A执行
-
INSERT INTO t SELECT * FROM dba_objects;
-
--故意写错的一个SQL语句
-
CREATE INDEX idx_t_objectid ON t(object_aa);
-
-
ERROR at line 1:
-
ORA-00904: \"OBJECT_AA\": invalid identifier
-
-
--在会话B. 说明会话A又提交了,即使会话A的DDL语句失败了.
-
SELECT COUNT(*) FROM t;
-
-
COUNT(*)
-
----------
-
75516
-
-
--结论:DDL语句执行的第一步就是COMMIT,然后才是执行DDL语句本身.
-
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1071035/
,如需转载,请注明出处,否则将追究法律责任。