mysql事務中ddl語句的隱式提交

2021-10-04 07:13:19 字數 610 閱讀 6188

1、當執行到ddl語句時,會隱式的將當前回話的事務進行一次「commit」操作,因此在mysql中執行ddl語句時,應該嚴格地將ddl和dml完全分開,不能混合在一起執行。

2、為什麼ddl語句會隱式提交?

因為ddl是資料定義語言,在我們的資料庫中承擔著建立,刪除和修改的重要的職責。一旦發生問題,帶來的後果很可能是不可估量的。

二是在每執行完一次後就進行提交,可以保證流暢性,資料不會發生阻塞,同時也會提高資料庫的整體效能。

3、ddl和dml混和執行可能帶來的風險:

3.1比如你開啟乙個事務正在修改資料,恰好研發同事找你在這個庫上新建乙個表,建完表你發現自己資料改錯了,此時再想回滾就gg了!

3.2又比如研發給你乙個事務指令碼,中間夾在乙個ddl語句,導致事務「中途」提交一次,等最後發現異常要回滾卻發現只能回滾一部分。

4、dml語句補充知識點

set autocommit = 0; //1是自動提交,當前session禁用自動提交事物,自此句執行以後,每個sql語句或者語句塊所在的事務都需要顯示"commit"才能提交事務。

//這裡寫insert或update等語句,source命令執行sql檔案也有效

commit; //或者rollback;

八 mysql語句的DDL語句

ddl語句 資料定義語言 建立乙個不存在的資料庫 create database school create schema sch 檢視支援的字符集 show charset 檢視支援的校對規則 show collation 完整建立乙個不存在的資料庫,建議的操作 create database t...

Mysql中DDL(資料定義語句)

一 操作庫 1 建立庫 create database if notexists mydb1 charset utf8 2 修改庫的編碼集 alter database mydb1 character set utf8 3 刪除庫 drop database if exists mydb1 4 查詢...

mysql的ddl的語句有 mysql語句之DDL

sql分類 ddl data definition languages 語句 資料定義語言,這些語句定義了不同的資料段 資料庫 表 列 索引等資料庫物件的定義。常用的語句關鍵字主要包括create drop alter等。dml data manipulation language 語句 資料操縱語...