我正在尝试在最近的数据库损坏后恢复我的数据库。现在我有两张桌子真的给我带来了麻烦。
当我做select count(*)
一张桌子返回:
错误:无法访问事务 2619431010 的状态
详细信息:无法打开文件“pg_clog/09C2”:没有这样的文件或目录。
另一个返回:
错误:关系基/11974232/11975439 的块 94206 中的页头无效
有什么方法可以解决并取回我的数据?
我正在尝试运行以下 dblink start 事务;
select dblink_connect('host=remote port=5432 dbname=remote_db user=user password=pass');
insert into local_table (column1, column2 )
select * from dblink(`
select remote_column1 ltrim(remote_column2, ''TEST'') from remote_table
where remote_column2 ilike ''TEST%''
) as t(column1 varchar, column2 varchar) ;
Run Code Online (Sandbox Code Playgroud)
现在上述工作正常,但我遇到了一个挑战: - 我想要而不是硬编码TEST
,我希望它从本地表中查询,所以我希望替换TEST
为类似SELECT uniq_id from some_local_table
的东西它背后的逻辑是我想要获取具有的记录前缀匹配的结果SELECT uniq_id from some_local_table
但在插入时修剪前缀以local_table
希望有人理解我
我有一个包含以下列的表:
现在我将执行这个查询:
select sum(debit - credit), payment_method, class
from my_table
group by payment_method, class
Run Code Online (Sandbox Code Playgroud)
而且由于我有各种付款方式和各种类,因此我将有几行结果集。
现在,我希望能够汇总此结果并仅按类对输出进行分组,例如对于001
我想要的某个类:
payment_method1, sumofpayment_method1, payment_method2, sumofpayment_method2, payment_method3, sumofpayment_method3
在一行中。
在 Postgres 9.1 中有可能吗?
更新:
表定义如下:-