如果是全局级别,则需要加global,如果是会话级别,则需要加session,如果都没加,默认是session。
全局变量作用域:服务器每次启动将为所有的全局变量赋初始值,修改全局变量针对于所有的会话(连接)有效,但不能跨重启(重启服务器全局变量恢复为默认值)。
会话变量作用域:仅仅针对于当前会话(连接)有效
查询会话事务提交模式:
show session variables like 'autocommit'
查询全局事务提交模式:
show global variables like 'autocommit'
Value的值为ON,表示autocommit开启。OFF表示autocommit关闭。
set global autocommit=0
set SESSION autocommit=0
禁止自动提交
SET AUTOCOMMIT=0
开启自动提交:
SET AUTOCOMMIT=1
查询 正在执行的事务:
SELECT * FROM information_schema.INNODB_TRX
查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS
查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS
结束正在执行的事务:
使用mysql命令杀掉线程:kill 线程id (trx_mysql_thread_id)
手动提交模式:
BEGIN
SQL;
COMMIT
MySQL的自动提交默认是开启的,用惯了Oracle,习惯了自己去提交或回滚。我们可以通过set来设置autocommit,过程如下:Step 1:使用select @@autocommit来查看当前autocommit设置情况,如下图1:
图1:查看autocommit
1表示自动提交是开启的,0表示自动提交是关闭的,图1可看出,当前是处于开启状态。
Step 2:通过set autocommit = 0来关闭autocommit,如下图2:
图2:设置autocommit
还有别的方法来设置,目前我只用了上面的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)