在MySQL中阻止UPDATE, DELETE 语句的执行,在没有添加WHERE条件
来源:互联网 发布:excel数据有效性 编辑:程序博客网 时间:2024/05/16 13:39
如果在生产环境中使用UPDATE,DELETE语句操作数据,此时如果忘记携带本应该添加的WHERE条件,后果可能不堪设想。在正常的业务情况,也不会更新或者删除所有的记录
1. 阻止update设置(sql_safe_updates)
sql_safe_updates这个MySQL自带的参数就可以完美的解决我们的问题,并且该参数是可以在线变更的哦~当该参数开启的情况下,你必须要在UPDATE语句后携带WHERE条件,否则就会报出ERROR。。
# sql_safe_updates=0,即未开启root@127.0.0.1 : test 07:58:34> set sql_safe_updates=0;Query OK, 0 rows affected (0.00 sec)root@127.0.0.1 : test 07:58:43> show variables like 'sql_safe_updates';+------------------+-------+| Variable_name | Value |+------------------+-------+| sql_safe_updates | OFF |+------------------+-------+1 row in set (0.00 sec)# sql_safe_updates=1,即开启root@127.0.0.1 : test 08:00:00> set sql_safe_updates=1;Query OK, 0 rows affected (0.00 sec)root@127.0.0.1 : test 08:00:11> show variables like 'sql_safe_updates';+------------------+-------+| Variable_name | Value |+------------------+-------+| sql_safe_updates | ON |+------------------+-------+1 row in set (0.00 sec)root@127.0.0.1 : test 08:00:27> update t set aaa='aaa';ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
如上属的例子所示,当参数sql_safe_updates开启的时候,UPDATE语句不携带WHERE条件将会爆出一个错误。
2. 阻止delete设置
直接限制mysql删除
启动MySQL的时候加上参数 -U
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
他的作用是防止执行delete的时候没带有条件语句,如果没加上where则语句不执行。
0 0
- 在MySQL中阻止UPDATE, DELETE 语句的执行,在没有添加WHERE条件
- 在数据库中执行删除delete语句时出现:You are using safe update mode and you tried to update a table without a WHERE
- MySQL中where条件的执行分析
- 如何在mybatis中一个insert,delete,update中执行多条SQL语句
- 【转】ACCESS中如何在SQL语句的WHERE条件中加日期条件
- MySQL 误操作 (update,delete忘加where条件)
- UPDATE语句中的WHERE条件
- 在SQL查询语句中,使用条件where 1=2的意义
- 在sqlserver和acess的delete和update语句中使用join的不同写法
- MySQL 中 delete ,update语句的子查询限制
- 由于“Table(User)”没有主键,因此无法在其上执行 Create、Update 或 Delete 操作。
- 由于“Table(bt_Employee)”没有主键,因此无法在其上执行 Create、Update 或 Delete 操作。
- sql语句中如何根据不同的条件,执行不同的where条件
- MYSQL联表查询LEFT JOIN 中 WHERE条件放在ON条件里和外部的区别
- 带条件的添加语句(insert +where 条件)
- 在SHELL中执行MYSQL语句
- 在SHELL中执行MYSQL语句
- 数据库一个表更新时没有加where 语句,把数据库恢复到执行update前的过程如下
- Java Tower of Hanoi 动画绘制
- Trie模板
- js执行顺序
- Docker镜像以及CMD与ENTRYPOINT指令的比较
- Atitit 编程语言知识点tech tree v2 attilax大总结
- 在MySQL中阻止UPDATE, DELETE 语句的执行,在没有添加WHERE条件
- (OK) Angular 2 CRUD, modals, animations, pagination, datetimepicker and much more
- fgetc_fputc函数
- 《甜蜜蜜》
- window下用taskkill杀死进程
- List<Map<String, String>> 合并map的字段数据问题
- Linux-Shell脚本执行方式
- 协议森林08 不放弃 (TCP协议与流通信)
- 算法:分治法求凸包上的点以及由凸包所构成的多边形的面积