关于如何避免操作(update、delete)mysql数据库时忘记添加where而导致全表修改或删除情况

在实际开发中,有时在对数据库进行更新或删除时,因忘记添加了where条件而造成了对整表的更新或删除。OMG,从网上找了许多的如何恢复误操作的方法,都是通过查看日志转换成sql语句再进行恢复。(好麻烦啊。。。),既然麻烦,那我们就应该想办法尽量避免这种现象的发生,也就是说做到在我们没有添加条件的时候,让该执行语句给我们报错提醒我们无法执行(因为一般情况下不会出现要整张表的某个字段更新成同样的数值,或彻底清空某张表的内容),好了。废话不多说了,方法如下。简单粗暴。

首先表结构

这里写图片描述
只是一张普通的表

执行语句

这一点很关键,我们执行此语句 SET SQL_SAFE_UPDATES = 1;
这里写图片描述
设置sql_sqfe_updates 也就是设置安全更新模式,正常情况下此值默认为0,也就是不开启,当我们设置为1时,开启此模式,如果有需求需要关闭再设置成0即可,该模式会在重启sql服务之前后效。也就是说重启了sql服务,模式又会回到0,也就是关闭状态。

效果

当我开启了此服务后,执行更新或删除语句就必须添加where或者limit,且where的字段必须是主键或者有索引的字段。否则报错,效果如下。
这里写图片描述
不过where后的字段也是有限制的,需要是主键或者拥有索引,否则依然会报上述错误。个人觉得项目组可以默认将这个模式开启,如有真正需求造成影响时,再进行关闭,处理完成后再开启,因为毕竟整张表的删除或者修改属于少数情况,且修改或删除时的标识一般都是主键或者有索引的字段。这样可以在很大程度上减少忘记加where条件而导致的问题。
索引如下
这里写图片描述
执行
这里写图片描述

如果where后字段及无主键也无索引则也会报错
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL数据库表的数据插入、修改删除操作数据库管理中非常基础的操作,以下是对这些操作的简要介绍: 1. 数据插入操作:使用INSERT INTO语句可以向MySQL数据库表中插入新的数据。语法如下: INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); 其中,table_name是要插入数据的表名,column1、column2、column3等是要插入数据的列名,value1、value2、value3等是要插入的具体数据值。 2. 数据修改操作:使用UPDATE语句可以修改MySQL数据库表中的数据。语法如下: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 其中,table_name是要修改数据的表名,column1、column2等是要修改的列名,value1、value2等是要修改的具体数据值,condition是修改数据的条件。 3. 数据删除操作:使用DELETE语句可以从MySQL数据库表中删除数据。语法如下: DELETE FROM table_name WHERE condition; 其中,table_name是要删除数据的表名,condition是删除数据的条件。 以上是MySQL数据库表的数据插入、修改删除操作的简要介绍,需要注意的是,在进行这些操作,要确保对数据库表有足够的权限,并且要谨慎操作,以免误删或误修改数据。 ### 回答2: MySQL是一种广泛使用的关系型数据库管理系统,它允许我们通过使用SQL语言进行数据库操作。其中,对于数据库表的数据操作,包括数据插入、修改删除,是我们在使用MySQL经常使用的命令。 在实验中,我们首先需要在MySQL中创建一个示例的数据库表,这个表我们可以在MySQL中使用CREATE TABLE语句来创建。接下来,我们可以使用INSERT INTO语句将数据插入到这个表中,例如: ``` INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3); ``` 其中,表名表示要插入数据的目标表名,列1、列2、列3是需要插入数据的列名,值1、值2、值3是对应列需要插入的值。通过这个INSERT INTO语句,我们就可以将数据插入到我们创建的表中,如果插入成功,我们可以通过SELECT语句查看刚刚插入的数据。 删除数据操作是通过使用DELETE语句来实现的,例如: ``` DELETE FROM 表名 WHERE 列名=值; ``` 其中,表名表示要删除数据的目标表名,列名表示我们期望删除数据的所在列名,值则是对应列的具体数值。这个DELETE语句可以删除表中所有符合条件的数据。 最后,修改数据操作是通过使用UPDATE语句来进行的,例如: ``` UPDATE 表名 SET 列名=新值 WHERE 列名=旧值; ``` 其中,表名表示要修改数据的目标表名,列名表示要修改的所在列名,新值是我们要修改成的数值,旧值则是要修改的原有数值。这个UPDATE语句可以将告诉MySQL将符合条件的旧数据修改成新的数据。 总之,MySQL数据库表的数据插入、修改删除操作实验可以通过SQL语句来完成,需要理解这三个语句的使用方法,并理解相关的操作规则和语法。 ### 回答3: MYSQL是一款关系型数据库管理系统,被广泛应用于Web应用程序的开发。在数据库操作中,插入、修改删除是最常见的操作之一。通过对MYSQL数据库表的数据插入、修改删除操作进行实验,可以更好地理解MYSQL数据库的基本操作和语法。 首先,我们需要创建一张表。在MYSQL中,创建表可以使用CREATE TABLE命令。下面,我们以创建一张学生信息表为例,表名为students,包括学生号(student_id)、姓名(name)、性别(gender)、年龄(age)和班级(class)五个字段。 在MYSQL中,创建表的语法为: CREATE TABLE students ( student_id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, gender varchar(10) NOT NULL, age int(11) NOT NULL, class varchar(255) NOT NULL, PRIMARY KEY (student_id) ); 上述代码中,使用了主键约束,将student_id字段设置为主键。也可以使用外键、唯一键等进行约束。 接下来,我们可以进行插入操作。插入操作可以使用INSERT INTO命令。下面,我们以插入一位学生信息为例,她的学号为1,姓名为小明,性别为女,年龄为18,班级为一班。 插入语句的语法为: INSERT INTO students (student_id, name, gender, age, class) VALUES (1, "小明", "女", 18, "一班"); 使用上述语句,我们可以将一条记录插入到students表中。 接下来,我们可以进行修改操作MYSQL中的修改操作使用UPDATE命令。下面,我们以将小明所在的班级修改为二班为例进行说明。 更新语句的语法为: UPDATE students SET class="二班" WHERE student_id=1; 使用上述语句,我们可以将students表中学号为1的记录的班级修改为二班。 最后,我们可以进行删除操作MYSQL中的删除操作使用DELETE命令。下面,我们以将学号为1的记录删除为例进行说明。 删除语句的语法为: DELETE FROM students WHERE student_id=1; 使用上述语句,我们可以将students表中学号为1的记录删除。 通过上述实验,我们可以更好地理解MYSQL数据库表的数据插入、修改删除操作的基本语法和操作流程。这对于MYSQL数据管理和开发非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值