在MySQL中阻止UPDATE, DELETE 语句的执行,在没有添加WHERE条件
2016-11-13 17:43
381 查看
如果在生产环境中使用UPDATE,DELETE语句操作数据,此时如果忘记携带本应该添加的WHERE条件,后果可能不堪设想。在正常的业务情况,也不会更新或者删除所有的记录
1. 阻止update设置(sql_safe_updates)
sql_safe_updates这个MySQL自带的参数就可以完美的解决我们的问题,并且该参数是可以在线变更的哦~当该参数开启的情况下,你必须要在UPDATE语句后携带WHERE条件,否则就会报出ERROR。。
如上属的例子所示,当参数sql_safe_updates开启的时候,UPDATE语句不携带WHERE条件将会爆出一个错误。
2. 阻止delete设置
直接限制mysql删除
启动MySQL的时候加上参数 -U
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
他的作用是防止执行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则语句不执行。
相关文章推荐
- 在MySQL中阻止UPDATE语句没有添加WHERE条件的发生
- 执行SQL语句---INSERT/UPDATE/DELETE
- 由于“Table(bt_Employee)”没有主键,因此无法在其上执行 Create、Update 或 Delete 操作。
- mysql 同时执行多条update语句
- 针对MYSQL delete、update、insert语句误操作时的恢复办法
- MySQL中UPDATE与DELETE语句的使用教程
- 如何检测mysql 数据库执行了哪些sql语句 ecshop如何添加商品属性 ecshop 商品属性批量采集入库
- php+MySQL判断update语句是否执行成功的方法
- php +mysql 添加 删除 修改 insert into delete update
- jdbc----mysql的select、insert、update、delete 基本语句
- hibernate“update”语句执行成功数据库却没有更新成功
- 使用SSH添加数据时执行了SQL语句数据库却什么都没有?
- 由于“Table(T_Test)”没有主键,因此无法在其上执行 Create、Update 或 Delete 操作
- mysql_query()函数 向MYSQL服务器引擎发送insert语句 update语句 delete 语句
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) 一条语句实现两表同步(添加、删除、修改)
- Hibernate如果查询更改了值,没有save,如果提交了仍然会执行update语句(十一)
- 1.利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语句操作花费时间的对比结果
- QtCreator Qt中执行SQL语句,select,update,delete,insert
- 执行delete、update语句时,出现 Error Code: 1175.解决方法
- MySQL中UPDATE与DELETE语句的使用教程