美文网首页
DDL语句和DML语句在同一Session中时事务会自动被提交

DDL语句和DML语句在同一Session中时事务会自动被提交

作者: 马云生 | 来源:发表于2022-02-15 09:38 被阅读0次

    什么是DDL?

      DDL(Data Definition Language)可以简单理解为用于创建数据库实体的语句,如create table, create directory , create trigger

      create  and replace procedure, create and replace function 等等。

    什么是DML?

    DML(Data Manipulation Language)可以简单理解为数据库对数据的操作的语句,如 INSERT、UPDATE、DELETE

    与DDL和DML相同分类的名词,还有DQL(Data QueryLanguage)和DCL(Data Control Language)定义可以自行了解

    DQL主要有Select语句,DCL主要是负责权限的语句如Grant,revoke语句。

    言归正传

         这次主要说的是当在一个存储过程(procedure)或函数(function)里,同时存在DDL语句和DML语句的时候需要注意的内容

    由于DDL语句在执行前和执行后会自动提交事务,所以当在DML(update,insert,delete)语句的后面执行了DDL(Create and replace precedure / function)语句就会发现

    虽然你没有明确提交数据,事务也被提交了,这是因为DDL执行前和执行后都自动提交事务(即使DDL失败,由于在执行DDL之前

    就自动提交了事务,所以DML的修改也会被反应到数据库里)。

    相关文章

      网友评论

          本文标题:DDL语句和DML语句在同一Session中时事务会自动被提交

          本文链接:https://www.haomeiwen.com/subject/kfvklrtx.html