关于navicat事务自动提交问题

最近在使用navicat编辑数据库表的时候遇到了一些问题,记录下~~
问题:编辑完数据之后点击“✔”提交的时候navicat卡了,然后提示“MySql Lock wait timeout exceeded”,截图现在没有了,总之意思就是超时了。

原因:后来查了好多资料,原来是navicat的自动提交事务关闭了,导致了修改数据之后事务一直未提交,所以再修改数据的时候就得等之前的事务,但是事务一直未提交,所以就超时了

解决原因:可以先看一下事务是否是自动提交的。

show variables like 'autocommit

如图,如果查出来是ON,表明事务是自动提交的,修改数据之后不用自己提交。如果是OFF的话,就需要把自动提交先先打开了。

set autocommit=on;

这样的话再修改数据的时候就不出出现超时的问题了~~~

ps:下面看下Navicat Premium 设置update和delete操作不自动提交事务的问题

首先查看MySQL设置:

show variables like 'autocommit';

结果应为:

然后执行:

set autocommit = 0;
delete from table1 where id =xxx;
commit; or rollback;

这时再查询:show variables like ‘autocommit'; 其结果应为:

需要注意:这种操作设置,在当前查询窗口有效,重新打开Navicat或者新建查询页都需要重新设置。

到此这篇关于navicat事务自动提交问题的文章就介绍到这了,更多相关navicat事务自动提交内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Navicat for MySQL 15注册激活详细教程

    1.下载Navicat for MySQL 15 https://www.navicat.com.cn/download/navicat-for-mysql 2.下载激活工具 链接: https://pan.baidu.com/s/1BtEADEk3_3oKc1ic7IHhiQ   提取码: haqj 3.安装Mavicat,按步骤安装即可,安装完毕后先不要打开软件,断开网络连接,将激活工具复制到Navicat安装路径下,以管理员身份运行. 在弹出界面选择Navicat 15 Products选

  • Navicat for MySQL 11注册码\激活码汇总

    推荐阅读: Navicat12.1系列破解激活教程亲测有效 Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品.目前 Navicat 注册码比较难找,很多已经流传出来的注册码已经被官方注销掉,正规途径需要通过 Navicat 官网授权获取.为节省用户的时间,现将已经被禁用的Navicat for MySQL注册码进行收集整理. Navicat for MySQL 注册码获取地址:http

  • Navicat Premium 12.0.29安装与激活超详细教程

    Navicat Premium 是一套多连接数据库开发工具,让你在单一应用程序中同时连接多达六种数据库:MySQL.MariaDB.SQL Server.SQLite.Oracle 和 PostgreSQL,可一次快速方便地访问所有数据库. 下载安装程序及激活工具 链接: https://pan.baidu.com/s/1nV8me7zYrv_ShfX0wBZXOw 提取码: ufy3 1.安装程序 双击navicat12029_premium_cs_x64.exe(64位简体中文),根据指引正

  • 关于navicat事务自动提交问题

    最近在使用navicat编辑数据库表的时候遇到了一些问题,记录下~~ 问题:编辑完数据之后点击"✔"提交的时候navicat卡了,然后提示"MySql Lock wait timeout exceeded",截图现在没有了,总之意思就是超时了. 原因:后来查了好多资料,原来是navicat的自动提交事务关闭了,导致了修改数据之后事务一直未提交,所以再修改数据的时候就得等之前的事务,但是事务一直未提交,所以就超时了 解决原因:可以先看一下事务是否是自动提交的. sho

  • postgresql 如何关闭自动提交

    postgresql中默认是自动提交的 查看是否是自动提交: postgres=# \echo :AUTOCOMMIT on 关闭自动提交: postgres=# \set AUTOCOMMIT off postgres=# \echo :AUTOCOMMIT off 另一种方式就在会话开始的时候以begin开始相当于关闭了自动提交,以end或者commit结束就可以了 补充:pg(hgdb)默认事务自动提交 默认情况下,AUTOCOMMIT(自动提交)是开着的,也就是说任何一个SQL语句执行完

  • PHP的PDO事务与自动提交

    PHP PDO 事务与自动提交 现在通过 PDO 连接上了,在开始进行查询前,必须先理解 PDO 是如何管理事务的. 事务支持四大特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 通俗地讲,在一个事务中执行的任何操作,即使是分阶段执行的,也能保证安全地应用于数据库,并在提交时不会受到来自其他连接的干扰. 事务操作也可以根据请求自动撤销(假设还没有提交),这使得在脚本中处理错误更加容易. 事务通常是通过

  • MySQL 事务autocommit自动提交操作

    MySQL默认操作模式就是autocommit自动提交模式.这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行.我们可以通过设置autocommit的值改变是否是自动提交autocommit模式. 通过以下命令可以查看当前autocommit模式 mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+----

  • mysql实现事务的提交和回滚实例

    mysql创建存储过程的官方语法为: 复制代码 代码如下: START TRANSACTION | BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]SET AUTOCOMMIT = {0 | 1} 我这里要说明的mysql事务处理多个SQL语句的回滚情况.比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要

  • 详解Java的JDBC API中事务的提交和回滚

    如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关闭自动提交和管理自己的事务: 为了提高性能 为了保持业务流程的完整性 使用分布式事务 若要控制事务,以及何时更改应用到数据库.它把单个SQL语句或一组SQL语句作为一个逻辑单元,而且如果任何语句失败,整个事务失败. 若要启用,而不是JDBC驱动程序默认使用auto-commit模式手动事务支持,使用Connection对象的的setAutoComm

  • 详解MySQL与Spring的自动提交(autocommit)

    1 MySQL的autocommit设置 MySQL默认是开启自动提交的,即每一条DML(增删改)语句都会被作为一个单独的事务进行隐式提交.如果修改为关闭状态,则执行DML语句之后要手动提交 才能生效. 查询当前会话的自动提交是否开启: mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | autocommit

  • 基于Postgresql 事务的提交与回滚解析

    用过oracle或mysql的人都知道在sqlplus或mysql中,做一个dml语句,如果发现做错了,还可以rollback;掉,但在PostgreSQL的psql中,如果执行一个dml,没有先运行begin;的话,一执行完就马上提交了,不能回滚,这样容易导致误操作的发生,有没有什么办法避免这个风险呢? 当然有,在psql中默认是打开自动提交的,我们可以关闭自动提交,方法如下: 设置\set AUTOCOMMIT off test=# create table test1 (x int); C

  • Spring TransactionalEventListener事务未提交读取不到数据的解决

    目录 一.背景 二.问题分析 2.1.mysql隔离级别 2.2.问题原因分析 三.解决问题方案 3.1.方式一 3.2.方式二 四.使用案例 一.背景 业务处理过程,发现了以下问题,代码一是原代码能正常执行,代码二是经过迭代一次非正常执行代码 代码一:以下代码开启线程后,代码正常执行 ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200, TimeUnit.MILLISECONDS, new ArrayBlockingQ

  • ThinkPHP表单自动提交验证实例教程

    本文以实例讲述了ThinkPHP表单自动提交验证的实现过程,详细步骤如下所示: 一.模板部分: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITL

随机推荐