在 postgresql 中截断了 table。如何恢复它?

Truncated a table in postgresql. How to recover it back?

截断 table table名称;

如何在 dbeaver 中恢复它

你不能。请参阅文档:http://www.postgresql.org/docs/9.1/static/sql-truncate.html

It has the same effect as an unqualified DELETE on each table, but since it does not actually scan the tables it is faster. Furthermore, it reclaims disk space immediately, rather than requiring a subsequent VACUUM operation. This is most useful on large tables.

space返回OS,可能被新数据等占用

Tuncate 使用文件级操作删除数据,这有很多含义:

  1. 提交后你不能恢复
  2. 这不是 MVCC 安全的。换句话说,其他并发事务将 table 视为空,尽管事务隔离级别应该让它们看到旧行。

这意味着您基本上必须从备份中恢复,这是一个很好的案例来警告备份不仅仅是硬件故障。它们也存在于管理员错误的情况下(这就是复制不是备份的原因)。