首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Oracle SQL中,DELETE语句将由COMMIT在它之后调用的过程中提交吗?

在Oracle SQL中,DELETE语句将在由COMMIT在它之后调用的过程中提交。

DELETE语句用于从数据库表中删除记录。当执行DELETE语句时,删除操作会立即生效,但是对于这个删除操作是否会在COMMIT之前提交,取决于事务的隔离级别和COMMIT的调用时机。

在Oracle数据库中,默认的事务隔离级别是READ COMMITTED。在READ COMMITTED隔离级别下,DELETE语句会立即生效,但是删除的数据只对当前事务可见,其他事务无法看到这些被删除的数据。只有在COMMIT语句被调用后,删除操作才会对其他事务可见。

如果在DELETE语句执行后立即调用COMMIT语句,则删除操作会在COMMIT之前提交,其他事务可以立即看到这些被删除的数据的变化。但是如果在DELETE语句执行后没有调用COMMIT语句,而是在之后的某个时刻调用了COMMIT语句,则删除操作会在这个COMMIT语句被调用时提交。

需要注意的是,如果在DELETE语句执行后调用了ROLLBACK语句,则删除操作会被回滚,数据将恢复到删除之前的状态。

总结起来,在Oracle SQL中,DELETE语句会在由COMMIT在它之后调用的过程中提交,但是具体的提交时机取决于事务的隔离级别和COMMIT的调用时机。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库 MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云数据库 PostgreSQL:https://cloud.tencent.com/product/cdb_postgresql
  • 腾讯云数据库 SQL Server:https://cloud.tencent.com/product/cdb_sqlserver
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Oracle数据库相关经典面试题

答∶ ORACLE事务执行第一条可执行SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出数据库时事务结束。 利用ROLLBACK语句可以COMMIT命令前随时撤消或回退一个事务。...触发器能用COMMIT,为什么? 答∶ 触发器不能使用COMMIT;等事务控制语句。因为触发器是事务触发的如果有事务控制语句就会影响到触发事务。...即连带触发语句之前已经完成没有提交语句都要受到影响。这是会影响到数据一致性。...悲观锁是通过sql语句上加入 for update,乐观锁可以通过增加一列version或者timestamp应用程序实现,Hibernate采用乐观锁版本戳。 索引作用?...答∶ Pl/sql 块结构包括:定义部分,执行部分,异常处理部分。 Oracle字符串用什么符号链接?

2.2K20

✅为什么MySQL默认使用RR隔离级别?

对于数据库默认隔离级别,Oracle默认隔离级别是 RC,而MySQL默认隔离级别是 RR。那么,你知道为什么Oracle选择RC作为默认级别,而MySQL要选择RR作为默认隔离级别?...MySQL主从复制过程中,数据同步通过binlog进行。简单来说,主服务器将数据变更记录到binlog,然后将binlog同步传输给从服务器。...即使 Session 1 删除操作 Session 2 插入操作之后提交,由于 READ COMMITTED 隔离级别,Session 2 插入操作不会看到 Session 1 删除操作,所以最后数据库仍然会留下...以上两个事务执行之后,会在bin log记录两条记录,因为事务2先提交,所以insert into t1 values(10,99);会被优先记录,然后再记录delete from t1 where...b < 100;(再次提醒:statement格式bin log记录SQL语句原文)这样bin log同步到备库之后SQL语句回放时,会先执行insert into t1 values(10,99

21810
  • 为什么MySQL默认使用RR隔离级别?

    对于数据库默认隔离级别,Oracle默认隔离级别是 RC,而MySQL默认隔离级别是 RR。 那么,你知道为什么Oracle选择RC作为默认级别,而MySQL要选择RR作为默认隔离级别?...MySQL主从复制过程中,数据同步通过binlog进行。简单来说,主服务器将数据变更记录到binlog,然后将binlog同步传输给从服务器。...★即使 Session 1 删除操作 Session 2 插入操作之后提交,由于 READ COMMITTED 隔离级别,Session 2 插入操作不会看到 Session 1 删除操作,...以上两个事务执行之后,会在bin log记录两条记录,因为事务2先提交,所以insert into t1 values(10,99);会被优先记录,然后再记录delete from t1 where...b < 100;(再次提醒:statement格式bin log记录SQL语句原文) 这样bin log同步到备库之后SQL语句回放时,会先执行insert into t1 values(10,99

    20310

    oracle commit详解

    听我这么说,你或许感觉commit没什么用,其实不然。当你同时执行两条或两条以上sql语句时,问题就出现了。...这个命令是将数据写到数据库。如果不执行COMMIT这个命令,那么在你这个session之外其他session查询数据是你修改数据之前数据。而COMMIT之后人家查询是你修改数据。...我说过,LGWR是一个同步调用,我们要等待完成所有写操作。Oracle 10g Release 1及以前版本,除PL/SQL以外所有编程语言都是如此。...PL/SQL引擎不同,要认识到直到PL/SQL例程完成之前,客户并不知道这个PL /SQL例程是否发生了COMMIT,所以PL/SQL引擎完成是异步提交。...因此,如果在PL /SQL提交了100次,然后返回客户,会发现由于存在这种优化,你只会等待LGWR一次,而不是100次。这是不是说可以PL/SQL中频繁地提交呢?这是一个很好或者不错主意

    1.6K90

    OTL技术应用

    •otl_stream类     otl_stream类是OTL“流”概念具体表现形式,任何通过输入/输出参数使用SQL语句、PL/SQL 块或者是存储过程调用C++编程中都能通过otl_stream...负责创建otl_stream对象并调用open()(解析sql语句)方法。  ...缓冲区大小定义了插入表逻辑行以及与数据库一次往反交互(one round-trip to the database)过程中从表或视图中查询逻辑行。...-1:处理异常;>=0:执行INSERT、DELETE或UPDATE语句时,实际返回是已处理行数 •otl_exception类        otl_exception类用于描述OTL操作数据时抛出异常...代替,但是一个SQL语句中不能使用相同名字placeholder •执行INSERT语句时候,如果数据库char字段大小是n,则这个INSERT语句绑定变量大小要为n+1;否则当邦定变量大小为

    2.1K60

    珍藏 | Java 岗位 【数据库】 面试题及答案详解

    数据库知识,对于开发工程师来讲,也是同样重要,是开发过程中重中之重,很多业务逻辑,比如:报表模块等,只要sql语句能写出来,就相当于完成大部分功能了,这是总结数据库题库前30道题,关于数据库详细优化和集群等知识...用什么来调用? · 存储过程存在于大型数据库系统,是一个预编译SQL语句(为了完成特定功能SQL 语句集),经过第一次编译后再次调用不需要再次编译。...- 优点是: - 允许模块化设计,就是说只需创建一次,以后该程序中就可以调用多次。 - 如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。...- Delete语句:删除数据表一条或多条记录,也可以删除数据表所有记录,但是操作对象仍是记录。 - Update语句:用于修改已存在表记录内容。...19:commit在哪里会运用 - Oraclecommit就是DML语句提交数据(这里是释放锁不是锁表),提交前你前面的操作更新都是内存,没有更新到物理文件

    3.4K20

    Java基础-JDBC

    JDBC API 提供者:Sun公司 内容:供程序员调用接口与类,集成java.sql和javax.sql,如 DriverManager类:作用:管理各种不同JDBC驱动 Connection...4.处理ResultSet结果 ResultSet对象是executeQuery()方法返回值,它被称为结果集,代表符合SQL语句条件 所有行,并且通过一套getXXX方法(这些get方法可以访问当前行不同列...语句 手动启动事务管理 JDBC,事务操作缺省是自动提交。...一条对数据库更新表达式代表一项事务操作 操作成功后,系统将自动调用commit()提交,否则调用rollback()回滚 JDBC,事务操作方法都位于接口java.sql.Connection...之后就可以把多个数据库操作表达式作为一个事务,操作完成后调用commit()来进行整 体提交, 倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应异常; 此时就可以异常捕获时调用

    62430

    深入解析:你听说过Oracle数据库更新重启动

    既然写操作只能修改当前版本,当写操作执行过程中,发现要修改记录发生了变化,破坏了更新发起时刻一致性,这时就触发了更新重启动,也就是说更新操作会放弃之前修改,然后重新发起一次新更新操作。...会话 2 发起 UPDATE 语句,更新 ID 大于 0 记录,这时 UPDATE 操作由于会话 1 更新了 ID 为 3 记录且未提交,会处于挂起状态: SQL> SET SQLP 'SQL2>...不仅更新了之前存在三条记录,连更新语句发起之后插入并提交第四条记录也一起进行了更新,这说明更新重启动发生在第四条记录插入之后。...会话1,恢复初始数据情况,然后开始更新数据: SQL1> DELETE T_UPDATE WHERE ID < 1; 1 row deleted....会话 2,对表中所有的记录 ID 执行 UPDATE 操作,和上一个案例唯一差别是,这里没有使用 WHERE 语句SQL2> UPDATE T_UPDATE SET ID = ID + 0.1

    66140

    事务Transaction

    隔离性(Isolation)-事务未提交前,操作数据,对其他用户不可见。 持久性(Durability)-一旦事务成功完成,该事务对数据库所施加所有更新都是永久。...数据库事务开始和结束 以第一个DML语句执行作为开始 以下面的其中之一作为结束: commit或rollback语句 DDL或DCL语句(自动提交) 用户会话正常结束–commit 系统异常终了–rollback...锁作为数据块一种属性存在 OracleSql Server锁区别 Sql Server Oracle 并发和读一致性不可兼得,必须牺牲一方 可兼得 因为锁实现方式,事务代价昂贵 没有真正锁...自治事务 自治事务允许一个事务存在独立事务,操作不会对当前事务产生影响。 ?...PL/SQL 过程已成功完成。 从这个例子,我们看到COMMIT和ROLLBACK位置无论是主匿名块或者子程序,都会影响到整个当前事务.

    65510

    技术分享 | 如何计算 MySQL QPSTPS

    SQL = DQL + DML + DDL + DCL,所以 QPS Q 应该和 SQL Q 一样,都是广义上 Query,也就是所有的 SQL 语句。...中文意思是,Queries 计数表示服务器执行语句数。与 Questions 计数不同,此变量包括了存储过程中执行语句。它不计数COM_PING或COM_STATISTICS命令。...MySQL 区别于 Oracle Oracle 里事务是需要显示提交,必须执行 commit 提交事务。而 MySQL 默认是设置了自动提交(参数 autocommit=1)。...commit 语句,复制到从库时,从库回放 SQL,会带 commit,那么从库会有com_commit,从库 TPS 是真实。...GTID( Global Transaction Identifier)全局事务标识,其保证为每一个 master 提交事务复制集群可以生成一个唯一 ID。

    2.6K30

    Oracle事务和锁机制

    (这里可能也有自治事务) 持久性durability:事务提交了,那么状态就是永久 所谓死锁: 是指两个或两个以上进程执行过程中,因争夺资源而造成一种互相等待现象,若无外力作用,它们都将无法推进下去...关于数据库死锁检查方法 一、数据库死锁现象 程序执行过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。...死锁解决方法 一般情况下,只要将产生死锁语句提交就可以了,但是实际执行过程中。用户可能不知道产生死锁语句是哪一句。可以将程序关闭并重新启动就可以了。...锁包括行级锁、表级锁、悲观锁、乐观锁 行级锁:一种锁,防止另外事务修改此行;使用以下语句时,Oracle会自动应用行级锁:INSERT、UPDATE、DELETE、SELECT … FOR UPDATE...本次事务提交之前(事务提交时会释放事务过程中锁),外界无法修改这些记录。

    37320

    MyBatisSqlSessionFactory和SqlSession简解

    将由当前环境配置 DataSource 实例获取 Connection 对象。 事务隔离级别将会使用驱动或数据源默认设置。 预处理语句不会被复用,也不会批量处理更新。...批量操作是session.commit()以后才发送sql语句给数据库进行执行 如果我们想让其提前执行,以方便后续可能查询操作获取数据,我们可以使用sqlSession.flushStatements...包含了所有执行语句提交或回滚事务以及获取映射器实例方法。 SqlSession 类方法超过了 20 个,为了方便理解,我们将它们分成几种组别。...语句执行方法 这些方法被用来执行定义 SQL 映射 XML 文件 SELECT、INSERT、UPDATE 和 DELETE 语句。...如果你没有使用这些方法提交修改,那么你可以 commit 和 rollback 方法参数传入 true 值,来保证事务被正常提交(注意,自动提交模式或者使用了外部事务管理器情况下,设置 force

    2.4K20

    由for update引发血案

    案发现场 最近公司某些 Dubbo 服务之间 RPC 调用过程中,偶然性地发生了若干起严重超时问题,导致了某些模块不能正常提供服务。...将事务交由 Spring 管理,根据数据事务机制,sql 执行过程中,只有执行了 commit 或者 rollback 操作, 才会提交事务,所以此时每次执行 commit,for update 没有被释放...聪明你可能会想到,Mybatis 底层源码不是给我们封装了一些重复性操作,比如我们执行一条 sql 语句,mybatis 自动为我们 commit 或者 rollback了,这也是 JDBC 框架基本要求...这里就要从数据库层来解释了,由于公司 Oracle 数据库 autocommit 使用是默认 false 值,即需要显式提交 commit 事务才会被提交。...,Spring 管理事务其实就是 sql 执行前将当前 connection 对象设置为不自动提交模式,接下来执行 sql 都不会自动提交,等待事务结束时,Spring 事务管理器会帮我们 commit

    93850

    由for update引发血案

    案发现场 最近公司某些 Dubbo 服务之间 RPC 调用过程中,偶然性地发生了若干起严重超时问题,导致了某些模块不能正常提供服务。...将事务交由 Spring 管理,根据数据事务机制,sql 执行过程中,只有执行了 commit 或者 rollback 操作, 才会提交事务,所以此时每次执行 commit,for update 没有被释放...聪明你可能会想到,Mybatis 底层源码不是给我们封装了一些重复性操作,比如我们执行一条 sql 语句,mybatis 自动为我们 commit 或者 rollback了,这也是 JDBC 框架基本要求...这里就要从数据库层来解释了,由于公司 Oracle 数据库 autocommit 使用是默认 false 值,即需要显式提交 commit 事务才会被提交。...,Spring 管理事务其实就是 sql 执行前将当前 connection 对象设置为不自动提交模式,接下来执行 sql 都不会自动提交,等待事务结束时,Spring 事务管理器会帮我们 commit

    99520

    如何计算数据库TPS和QPS

    SQL = DQL + DML + DDL + DCL,所以 QPS Q 应该和 SQL Q 一样,都是广义上 Query,也就是所有的 SQL 语句。...中文意思是,Queries 计数表示服务器执行语句数。与 Questions 计数不同,此变量包括了存储过程中执行语句。它不计数COM_PING或COM_STATISTICS命令。...MySQL 区别于 Oracle Oracle 里事务是需要显示提交,必须执行 commit 提交事务。而 MySQL 默认是设置了自动提交(参数 autocommit=1)。...commit 语句,复制到从库时,从库回放 SQL,会带 commit,那么从库会有com_commit,从库 TPS 是真实。...GTID( Global Transaction Identifier)全局事务标识,其保证为每一个 master 提交事务复制集群可以生成一个唯一 ID。

    2K111

    oracle基本面试题_mongodb面试题

    显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在内部处理SQL语句,然后关闭 3. Oraclefunction和procedure区别? 1)....sql数据操纵语句中只能调用函数而不能调用存储过程 4. Oracle导入导出有几种方式,有何区别? 1). 使用oracle工具 exp/imp 2)....冷备份不足: 1).单独使用时,只能提供到“某一时间点上”恢复。 2).实施备份过程中,数据库必须要作备份而不能作其它工作。也就是说,冷备份过程中,数据库必须是关闭状态。...事务也可以进行过程中获得共享锁或排锁,只有当事务显示使用LOCK TABLE语句显示定义一个排锁时,事务才会获得表上锁,也可使用LOCK TABLE显示定义一个表级共享锁(LOCK TABLE...如事务1表A行记录#3有一排锁,并等待事务2表A记录#4释放,而事务2表A记录行#4有一排锁,并等待事务; 1表A记录#3释放,事务1与事务2彼此等待,因此就造成了死锁

    3.3K20

    ORA-1555经典错误

    一个语句在读取数据快时,如果发现这个数据块是读取过程中被修改(即开始执行读操作时并没有被修改),就不直接从数据块上读取数据,而是从相应回滚段条目中读取数据。...事务提交(commit)前,会在数据块头部记录下这个Cleanout SCN(Csc)号、Undo Block Address(Uba)和Transaction ID(Xid);并且在在对应Interested...当提交时,并不会一一清除掉所有锁标志,而是给对应Itl打上相应标志,告诉后面访问该数据块事务,相应事务已经提交。这就叫做快速提交(Fast Commit)。...DELETE语句ORA-1555,且这个夜维比较特殊地方就是他是若干条(22条)DELETE语句一个事务,即都执行完成后才一次COMMIT,这样无形当中增加了事务复杂度,但凡其中一条语句等待...上述语句执行过程中,创建查询语句,这里使用DBMS_LOCK.SLEEP(0.01)来模拟查询单次时间是0.01秒,由于是随机插入到表,因此此处相当于随机地查询表块。

    94120

    PLSQL Developer几个可能隐患

    DML语句执行完成,需要手动执行commit,或者rollback,才可以结束当前事务,但是,DDL语句执行完成,都会自动执行隐式提交(implicit commit),Oracle,这个行为是不能改变...4是DML操作,3是DDL操作,这些语句同一个事务执行,3DDL会隐式提交,此时会将1和2insert和delete连带提交,当4需要rollback时,只可以回滚4操作,1和2已经提交,无法再执行回滚...但是PLSQL Developer,是可以设置DML语句自动提交"Tools-Preferences-SQL Windows",有个AutoCommit SQL,默认是空,如果勾选,则执行DML...之所以DML语句需要显示提交,从原理层讲,DML会记录redo和undo信息,undo存储是修改数据前镜像,当执行rollback时,可以利用undo数据进行恢复,当执行commit时,Oracle...借助PLSQL DeveloperAfterConnect.sql脚本,Oracle执行了一些特定JOB、存储过程和触发器,实现勒索机制。

    2.1K10
    领券