什么是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的修改也会被反应到数据库里)。
网友评论