MySQL Workbench批量更新或删除

在使用MySQL Workbench进行批量更新或删除时,会出现如下错误:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect. 0.000 sec

因为是MySQL Workbench的默认的安全设置是不能批量更新表的。

解决方法:

一、在SQL语句之前添加

SET SQL_SAFE_UPDATES = 0;

二、修改MySQL Workbench设置:

  • 打开Workbench的菜单[Edit]->[Preferences...]
  • 切换到[SQL Queries]页面(不同版本可能在SQL Editor)
  • “Safe Updates”.Forbid UPDATEs and DELETEs with no key in WHERE clause or no LIMIT clause.Requires a reconnection之前的对勾去掉.
  • 点击【OK】,重启Workbench.
时间: 2024-08-29 07:01:40

MySQL Workbench批量更新或删除的相关文章

Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)

今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很多介绍EF使用的文章了. E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对IQueryable<T>的扩展,而不是DbSet<T>(已经标记为弃用),所以跟我一样有隔离癖好的就可以大胆使用了.下面介绍如何批量删除.更新.查询. 批量删除 本来我们需要这样删除 ? //

一次Mysql下批量更新造成的死锁案例分析

最近,公司现网的业务中出现上图所示的死锁异常,沿着问题分析,发现这个问题涉及很多数据库的基础知识. 背景: 使用数据库:Mysql 涉及表格:t_invest 数据库隔离级别:可重复读(Repeatable Read) 死锁场景:saveRepaymentInfo事务的A()方法对t_invest表执行如下update操作: <update id = "A" parameterType = "java.util.List"> <foreach co

hibernate批量更新和删除数据

批量处理  不建议用Hibernate,它的insert效率实在不搞,不过最新版本的Hibernate似乎已经在批量处理的时候做过优化了,设置一些参数如batch_size,不过性能我没有测试过,听说是这样.我记得以前在做大批量数据转移的时候我们测试过Hibernate,很慢,直接Pass,当时我们的系统由于用多个数据库,所以用的jdbc,如果不考虑移植还是可以用存储过程的. 存储过程对数据库依赖过强,不便系统移植   浅析Hibernate下数据批量处理方法 关键字: hibernate指处理

mysql插入、更新与删除

数据库增删改查都是要熟练掌握的. 这部分就来看看前面3个比较简单的部分,增,删,改. 插入数据 为表的所有字段插入数据 insert into table_name (column_list) values (value_list); 注意: 要指定插入表的表名: column_list指定的是要插入数据的那些列: value_list指定了对应插入的数据: 字段列和数据值的数量必须要相同: 要么全部指定字段名,要么全不指定: 插入的列名顺序可以和创建表时的顺序不一样,只要插入数据的值和列字段对

2500-使用MyBatis操作MySQL进行批量更新的注意事项

原则上一条SQL只更新一条数据库操作,但有时需要批量操作数据,特别是一些DML语句,在操作数据库时,数据库会报出异常,不允许混合语句,此时需要额外配置进行兼容. 例如: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ve

mysql——插入、更新、删除数据(概念)

一.插入数据 1.为表的所有字段插入数据 -------------------------------------------------------------------------- (1)insert语句中不指定具体的字段名 语法格式:insert into 表名 values(值1,值2,……,值n); 表名指定记录插入到哪一个表中: 值等表示要插入的数据:值1到值n分别对应着表中的每一个字的:表中定义了几个字段,insert语句中就应该对应有几个值: 值插入的顺序与表中字段的顺序相

MySQL——添加、更新与删除数据

添加数据 通常情况下,向数据表中添加的新记录应该包含表所有字段,即为该表中的所有字段添加数据,为表中所有字段添加数据的INSERT语句有两种. 1.INSERT语句中指定所有字段名向表中添加新记录时,可以在INSERT语句中列出表的所有字段名,其语法格式如下所示: INSERT INTO 表名(字段名1,字段名2,……)  VALUES(值1,值2,……); 2.INSERT语句中不指定字段名在MySQL中,可以通过不指定字段名的方式添加记录,其基本的语法格式如下所示: INSERT INTO

MySQL插入、更新、删除数据

1.插入数据:由于下表的id会自增,故赋值null. 注意:字符串用'   '单引号,不能双引号,英文状态下. 可以写上部分属性名进行插入操作,如bookTypeId没写,默认NULL. 也可以写上所有的属性名进行插入操作: 同时插入多条数据,重点是:VALUES(),(),(),.....(); ======================================================== 2.更新数据 单条更新前: 单条更新后:(属性名之间用英文的逗号隔开) 多条更新之前:

MySQL datetime的更新,删除网上的一些老概念

网上的老概念 第一点:是以前的MySQL的datetime的最小值是:'1000-01-01 00:00:00'(貌似),但是最新的MySQL测试datetime的最小值可以是:'0000-00-00 00:00:00'(0000-00-01 00:00:00也可以插入), 但是我是用'0001-01-01 00:00:00'作为最小值(一般用于代替null值作为该列的默认值),因为C#的DateTime最小值就是该值. 第二点:以前只能timestamp类型才能设置默认值为CURRENT_TI