Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
能理解php oracle函数oci_commit()_Php_Oracle - Fatal编程技术网

能理解php oracle函数oci_commit()

能理解php oracle函数oci_commit(),php,oracle,Php,Oracle,我从php.net中阅读了以下内容: 当使用oci\u NO\u AUTO\u COMMIT标志使用oci\u execute()执行更改数据的第一条SQL语句时,事务开始。其他语句所做的进一步数据更改成为同一事务的一部分。在提交或回滚事务之前,事务中所做的数据更改是临时的。数据库的其他用户在提交更改之前不会看到这些更改 有两件事我不明白: 承诺是为了什么 这意味着什么“数据库的其他用户在提交更改之前不会看到更改?”他们怎么会看不到更改 嗯,你应该多读一些关于交易的书 简单地说,您可以将事务中的

我从php.net中阅读了以下内容:

当使用
oci\u NO\u AUTO\u COMMIT
标志使用
oci\u execute()
执行更改数据的第一条SQL语句时,事务开始。其他语句所做的进一步数据更改成为同一事务的一部分。在提交或回滚事务之前,事务中所做的数据更改是临时的。数据库的其他用户在提交更改之前不会看到这些更改

有两件事我不明白:

  • 承诺是为了什么
  • 这意味着什么“数据库的其他用户在提交更改之前不会看到更改?”他们怎么会看不到更改

  • 嗯,你应该多读一些关于交易的书

    简单地说,您可以将事务中的任何查询视为草稿、临时数据集,只有您(在数据库会话/连接中)才能看到,除非您发出提交


    另一个类似的解释是,把交易看作是你对某件事的想法,然后你会把它写在纸上。提交是实际编写它的行为,因此它不再只存在于您的头脑中。

    提交是事务的最终完成,其中的更改是永久性的

    由于Oracle具有“读取一致性”视图,因此启动事务的用户只能看到新事务启动时提交的数据。因此,当用户A启动事务,用户B更改表中的某些值并提交时,用户A在用户A启动新事务之前不会看到更改的数据。“读取一致性”视图确保所有用户始终看到一致的状态,即所有数据都已提交的状态


    这导致一个表的单个块在undo表空间中可以有多个版本,只是为了支持各种事务的读取一致性视图。

    这应该是一个很好的基本阅读:ahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa。自动提交一些缺点,希望可以控制。