COMMIT做什么?

时间:2015-04-01 07:59:43

标签: sql oracle

我想了解以下两个陈述之间的区别:

insert into table_name values (,,,,,);

insert into table_name values (,,,,,);
commit;

2 个答案:

答案 0 :(得分:8)

如果在没有提交的情况下插入数据,则可以从数据库中选择数据并查看它。但其他用户不能。

查看sql文档会更好:

  

在您提交交易之前:

     

您可以看到在交易过程中所做的任何更改   查询修改后的表,但其他用户无法查看更改。   提交事务后,更改对其他人可见   用户'提交后执行的语句。

     

您可以回滚(撤消)在事务期间所做的任何更改   ROLLBACK语句(参见ROLLBACK。

例如Oracle Documentation 以及有关transactions

的一些信息

答案 1 :(得分:1)

要插入数据库中的所有DML(插入,更新,删除)都必须提交它们,例如批准您要将它们添加到数据库中。如果您不提交DML语句,则不会输入数据库。

什么是提交?

Docs.oracle无法更好地描述

  

使用COMMIT语句结束当前事务并生成   永久所有在交易中执行的更改。交易是一个   Oracle数据库视为单个语句的SQL语句序列   单元。他的陈述也删除了交易中的所有保存点   释放事务锁。