我试图在MySQL服务器上进行更新,并且意外忘记添加一个应该编辑一行的额外WHERE子句。
由于我的错误,我现在已经编辑了3500多行。
我可能有备份,但自上次备份以来我做了很多工作,我只是不想浪费一切,因为1个错误的查询。
请告诉我,我可以做些什么来解决这个问题。
答案 0 :(得分:9)
只是一个想法 - 您是否可以将备份恢复到新数据库,然后执行跨数据库查询以根据以前的数据更新该列?
答案 1 :(得分:8)
如果您提交了交易,那么现在是时候清除备份了,抱歉。但这就是备份的用途。我做过一次这样的事......一次。
答案 2 :(得分:6)
没有
尽管如此,你可以为自己的学习经历感到高兴,并为你现在如何改变习惯而大大减少再次发生这种习惯而感到自豪。你现在可以成为“大师”,可以教幼小的幼崽并引用经过实战训练的经验。
答案 3 :(得分:1)
您现在只能解决一件事,这就是您的习惯,它将在将来为您提供帮助。我知道这是一个老问题,OP必须已经吸取了教训。我只是将它发布给其他人,因为我今天也上过课。
因此,我应该运行一个查询,该查询应该更新约五十条记录,然后MySQL
返回此48500 row(s) affected
,由于{{1}中的一个愚蠢错误,这给了我一点心脏病}条件:D
因此,这里是一些学习内容:
WHERE
之前,请务必对其进行两次检查,但有时它无济于事,因为您仍然可以犯该愚蠢的错误。query
。DB
,我认为这是克服灾难的一种很好的轻松方式。从现在开始,这就是我对每一个影响数据的查询的处理方式:我启动TRANSACTION
,运行Transaction
,然后检查结果是否正确。如果结果没问题,那么我只需Query
进行更改,否则将通过COMMIT
ROLLBACK