防止本地update误操作

背景:

  我们在手动更新数据时候没有添加条件就会把整列直接更新上去,这样会会导致该列数据出错;

更新前: 

root@leadchina 03:32:13->select * from student;
+----+----------+-----+--------+
| id | name     | age | dept   |
+----+----------+-----+--------+
|  1 | huhui    |  29 | test   |
|  2 | student2 |  10 | lead   |
|  3 | 0        |  11 | gongli |
|  4 | 007      |   9 | gongli |
|  5 | 008      |   9 | gongli |
|  6 | student  |   9 | gongli |
|  7 | name     |  10 | gongli |
|  8 | hui      |  10 | gongli |
|  9 | tan      |  22 | shuxue |
| 11 | tan1     |  22 | shuxue |
| 12 | tan2     |  22 | shuxue |
| 13 | aaa      |  20 | IT     |
| 14 | a1122    |  24 | IT     |
+----+----------+-----+--------+
13 rows in set (0.00 sec)

更新后:

root@leadchina 03:32:29->update student set age =10;
root@leadchina 03:33:52->select * from student;
+----+----------+-----+--------+
| id | name     | age | dept   |
+----+----------+-----+--------+
|  1 | huhui    |  10 | test   |
|  2 | student2 |  10 | lead   |
|  3 | 0        |  10 | gongli |
|  4 | 007      |  10 | gongli |
|  5 | 008      |  10 | gongli |
|  6 | student  |  10 | gongli |
|  7 | name     |  10 | gongli |
|  8 | hui      |  10 | gongli |
|  9 | tan      |  10 | shuxue |
| 11 | tan1     |  10 | shuxue |
| 12 | tan2     |  10 | shuxue |
| 13 | aaa      |  10 | IT     |
| 14 | a1122    |  10 | IT     |
+----+----------+-----+--------+
13 rows in set (0.01 sec)

会发现在没有添加where的条件下,整个age列全部被更新为10,为防止本地登录的时候不出现这种情况,我们可以对mysql进行别名化

alias mysql='mysql -U'

再去执行更新操作会提如下,这样可以有效防止本地误更新给数据带来不必要的灾难

root@leadchina 03:38:00->update student set age=11;
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.

参考文献:https://blog.51cto.com/oldboy/1321061

posted @ 2022-02-24 15:41  闲着没事学学习  阅读(41)  评论(0)    收藏  举报