如何在PostgreSQL中回滚更新

dam*_*mon 13 postgresql rollback

在终端中使用sql在我的PostgreSQL数据库中编辑一些记录时(在ubuntu lucid中),我做了一个错误的更新.

代替 -

update mytable set start_time='13:06:00' where id=123;
Run Code Online (Sandbox Code Playgroud)

我打字 -

update mytable set start_time='13:06:00';
Run Code Online (Sandbox Code Playgroud)

因此,所有记录现在具有相同的start_time值.

有没有办法撤消这种变化?表中有大约500条记录,我不知道每条记录的start_time值是多少

它会永远丢失吗?

Cra*_*ger 8

我假设这是一个已经提交的交易?如果是这样,那就是"提交"意味着什么,你就不能回去了.

如果幸运的话,有些数据可以恢复.现在停止数据库.

这是我之前在同一主题上写的答案.我希望它有用.

这可能也是:在postgresql中恢复已删除的行.

除非数据绝对重要,否则只需从备份中恢复,它就会变得更容易,也不会那么痛苦.如果您没有备份,请认为自己是完全被劫持的.