mysql 会造成隐式提交的语句

来源:互联网 发布:java执行bat文件 编辑:程序博客网 时间:2024/06/16 11:26

转自:http://www.iteedu.com/database/mysql/mysqlmanualcn/sql-syntax/implicit-commit.php

以下语句(以及同义词)均隐含地结束一个事务,似乎是在执行本语句前,您已经进行了一个COMMIT。

 ALTER FUNCTION, ALTER PROCEDURE, ALTER TABLE, BEGIN, CREATE DATABASE,  CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, DROP DATABASE,  DROP FUNCTION, DROP INDEX, DROP PROCEDURE, DROP TABLE, LOAD MASTER DATA,  LOCK TABLES, RENAME TABLE, SET AUTOCOMMIT=1, START TRANSACTION,  TRUNCATE TABLE, UNLOCK TABLES.

当当前所有的表均被锁定时,UNLOCK TABLES可以提交事务。

CREATE TABLE, CREATE DATABASE DROP DATABASE, TRUNCATE TABLE, ALTER FUNCTION, ALTER PROCEDURE, CREATE FUNCTION, CREATE PROCEDURE, DROP FUNCTION和DROP PROCEDURE等语句会导致一个隐含提交。

InnoDB中的CREATE TABLE语句被作为一个单一事务进行处理。这意味着,来自用户的ROLLBACK不会撤销用户在事务处理过程中创建的CREATE TABLE语句。

事务不能被嵌套。这是隐含COMMIT的结果。当您发布一个START TRANSACTION语句或其同义词时,该COMMIT被执行,用于任何当前事务。 

阅读全文
0 0
原创粉丝点击