比安全模式更安全的删除 MYSQL workbench 中数据的方法

A safer way to delete data in MYSQL workbench than its Safe Mode

事情是这样的,我一直在删除 MySQL Workbench 中的行(这是第三次),因为我通常会为每个 table 打开一个选项卡,从我需要查看的地方数据,然后我回收同一个选项卡(以免阻塞它),假设我打开用户选项卡,查看用户 ID 为 24 的数据,但随后我需要查看 ID 为 26 的用户的数据,所以我只需替换id = 26 或其他内容的 WHERE 部分,但有时我也会执行 DELETE 语句,但不要关闭选项卡,所以假设一周后我想查看 ID 为 28 的用户,我转到用户选项卡,然后替换 WHERE 部分认为它是一个 SELECT 语句只是让我惊恐地发现它是一个 DELETE 语句。

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

处理这个问题的一个好方法是使用事务;

例如

delete from users where id = 2

作为安全防护,您随后会将此语句包装在回滚的事务中。

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

现在删除用户的唯一方法是 select 仅第二行或将 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;