从mysql表中删除行

发布于 2024-09-11 13:31:29 字数 70 浏览 6 评论 0原文

如果我在 mysql 中的表名中写入 delete * ,所有行都会被删除,有任何方法可以将数据返回到该表中的 mysql 中

if i write delete * from tablename in mysql ,all rows get delete it there any way to get the data back in mysql in that table

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

山田美奈子 2024-09-18 13:31:29

不,没有。

正确的查询是DELETE FROM tablename。 (没有 *

No, there isn't.

And the correct query is DELETE FROM tablename. (without *)

孤千羽 2024-09-18 13:31:29

从备份恢复。

Restore from backup.

您的好友蓝忘机已上羡 2024-09-18 13:31:29

取决于,取决于,取决于。

我猜你没有备份。如果这样做,最好从备份中恢复表,正如之前指出的那样。

如果表是 MyISAM ,那么答案是“否”而不是“是”。问题是 MyISAM 将数据存储在块中。正常块的标头为 3 或 4 个字节。删除的块的标头为 20 字节。因此,即使您从 MYD 文件中提取记录,第一列(在大多数情况下是您的 PK)也将被覆盖。从 MYD 文件中提取记录几乎是不可能的。

如果是InnoDB,机会就高得多。如果 MySQL 在事故发生后立即停止/终止,那么可能性也接近 100%。 InnoDB 不会立即删除。它将记录标记为已删除,并在 InnoDB 重建 B+tree 索引时物理清除记录(读取 - 当您插入新记录时)。所以,你还有一些时间。在这种情况下你要做的第一件事就是立即停止MySQL,要么优雅地停止,要么kill -9。

我不知道是否可以在这里插入网址。 Google percona 数据恢复工具,从主干获取最新版本并检查 mysqlperformance 博客(再次,google it)以获取食谱。

祝你好运。

更新:数据恢复工具包已移至 GitHub

Depends, depends, depends.

I assume you don't have backups. If you do it's better to restore the table from the backup as it was pointed out before.

If the table was MyISAM , then the answer is rather NO than YES. The matter is MyISAM stores data in blocks. The normal block's header is 3 or 4 bytes. The deleted block's header is 20 bytes. So even if you extract records from MYD file the first column (which is your PK in most of cases) will be overwritten. To extract records from MYD file is almost impossible.

If InnoDB, chance is much higher. If MySQL was stopped/killed right after the accident then the chance is close too 100%. InnoDB doesn't delete right away. It marks the records as deleted and will physically purge the records when InnoDB rebuilds B+tree index (read - when you insert new records). So, you have some time. The first thing you'd do in cases like that is stop MySQL immediately, either gracefully or kill -9.

I don't know if I may insert URLs here. Google percona data recovery tool, take the latest revision from the trunk and check mysqlperformance blog (again, google it) for recipes.

Good luck.

UPDATE: Data recovery toolkit moved to GitHub

说谎友 2024-09-18 13:31:29

最简单的方法是恢复最新的备份。

the easiest way would be to restore your latest backup.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文