删除MYSQL工作台中的数据比安全模式更安全的方法

时间:2015-04-20 16:33:47

标签: mysql mysql-workbench safe-mode

这就是问题,我一直在MySQL Workbench中删除行(这是第三次),因为我经常为每个表打开一个选项卡,我需要查看数据,然后我回收相同的选项卡(以免堵塞它),所以我说我打开用户标签,查看用户ID的24的数据,但后来我需要看到ID为26的用户的数据,所以我只是将WHERE部分替换为id = 26或者其他什么,但有时我也是执行DELETE语句,但不要关闭选项卡,所以让我们说一周后我想查看id为28的用户,我转到用户选项卡,只是替换WHERE部分,认为它只是一个SELECT语句,恐怕是发现它是一个DELETE语句。

那么,我该怎么做才能安全地删除数据,例如弹出窗口打开说你真的要删除它吗?所以我知道这是一个删除声明。当然我可以查看语句,如果它是SELECT或DELETE并且我已经尝试过,但是我做了很多SELECT语句和查询,我想看看是否有更安全的方法。 Workbench固有的安全模式适用于一般删除语句,但不适用于特定的删除语句(WHERE X)。也许在MySQL的Workbench中没有像这样的选项,但是有另一种替代软件吗?是的,我是愚蠢和粗心,并试图引起注意,但我每天都做很多询问,不想再次滑倒

1 个答案:

答案 0 :(得分:1)

处理此问题的一个好方法是使用交易;

例如

delete from users where id = 2

作为一名安全警卫,您可以将此声明包装在一个回滚的交易中。

start transaction;
delete from users where id = 2
rollback;

现在,删除用户的唯一方法是仅选择第二行或将rollback更改为commit并运行整个查询。

另一方面,您可以编写上述查询以查看交易中的更改,例如

start transaction;
select * from users where id = 2; # user exists
delete from users where id = 2;
select * from users where id = 2; # user gets deleted
rollback;