本节中列出的语句(以及它们的任何同义词)隐式结束当前会话中任何活动的事务,就好像您COMMIT在执行该语句之前执行了操作一样。
大多数这些语句在执行后也会导致隐式提交。目的是在其自己的特殊事务中处理每个此类语句,因为它无论如何都无法回滚。事务控制和锁定语句是例外:如果隐式提交发生在执行之前,则另一个不会发生在执行之后。
定义或修改数据库对象的数据定义语言 (DDL) 语句。
ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 。ALTER EVENT_ALTER PROCEDURE_ALTER SERVER_ALTER TABLE_ALTER TABLESPACE_ALTER VIEW_CREATE DATABASE_CREATE EVENT_CREATE INDEX_CREATE PROCEDURE_CREATE SERVER_CREATE TABLE_CREATE TABLESPACE_CREATE TRIGGER_CREATE VIEW_DROP DATABASE_DROP EVENT_DROP INDEX_DROP PROCEDURE_DROP SERVER_DROP TABLE_DROP TABLESPACE_DROP TRIGGER_DROP VIEW_INSTALL PLUGIN_RENAME TABLE_TRUNCATE TABLE_UNINSTALL PLUGINALTER FUNCTION,CREATE FUNCTION并且DROP FUNCTION在与存储函数一起使用时也会导致隐式提交,但不会与可加载函数一起使用。(ALTER FUNCTION只能与存储函数一起使用。)CREATE TABLE如果使用关键字,andDROP TABLE语句不会提交事务。TEMPORARY(这不适用于临时表上的其他操作,例如ALTER TABLEandCREATE INDEX,它们确实会导致提交。)但是,虽然没有隐式提交发生,但语句也不能回滚,这意味着使用此类语句会导致事务原子性被侵犯。例如,如果您使用CREATE TEMPORARY TABLE然后回滚事务,该表仍然存在。中的
CREATE TABLE语句InnoDB作为单个事务处理。这意味着ROLLBACK来自用户的 a 不会撤消CREATE TABLE用户在该事务期间所做的语句。CREATE TABLE ... SELECT当您创建非临时表时,会在执行语句之前和之后导致隐式提交。(没有提交发生CREATE TEMPORARY TABLE ... SELECT。)隐式使用或修改数据库中表的语句
mysql。ALTER USER,,,,,, .CREATE USER_DROP USER_GRANT_RENAME USER_REVOKE_SET PASSWORD事务控制和锁定语句。
BEGIN,LOCK TABLES,SET autocommit = 1(如果值还不是 1),START TRANSACTION,UNLOCK TABLES.UNLOCK TABLES仅当当前已锁定任何表LOCK TABLES以获取非事务表锁时才提交事务。UNLOCK TABLES后续不会发生提交,FLUSH TABLES WITH READ LOCK因为后一条语句不获取表级锁。事务不能嵌套。这是在您发出
START TRANSACTION语句或其同义词之一时对任何当前事务执行的隐式提交的结果。ACTIVE当事务处于某个状态 时,导致隐式提交的语句不能在 XA 事务中使用 。该
BEGIN语句不同于开始复合语句的BEGIN关键字 的使用。BEGIN ... END后者不会导致隐式提交。请参阅第 13.6.1 节,“BEGIN ... END 复合语句”。行政报表。
ANALYZE TABLE,,,,,,,, 。CACHE INDEX_CHECK TABLE_FLUSH_LOAD INDEX INTO CACHE_OPTIMIZE TABLE_REPAIR TABLE_RESET复制控制语句。
START SLAVE,,,.STOP SLAVE_RESET SLAVE_CHANGE MASTER TO