Rob*_*kan 26

对于未来的读者,PostgreSQL 9.5允许使用ALTER TABLE 命令将现有表设置为LOGGED/UNLOGGED ... 这里更详细.

For e.g. 
ALTER TABLE table_test SET LOGGED;
ALTER TABLE table_test SET UNLOGGED;
Run Code Online (Sandbox Code Playgroud)


Pab*_*ruz 15

以下解决方案适用于PostgreSQL版本<= 9.4:

你可以做:

create unlogged table your_table_alt as 
   select * from your_table;
Run Code Online (Sandbox Code Playgroud)

然后:

drop table your_table;
alter table your_table_alt rename to your_table;
Run Code Online (Sandbox Code Playgroud)

  • 在删除旧表之前,请检查并重新创建新表上的索引和约束. (8认同)
  • 这是PostgreSQL <= 9.4的正确答案 (2认同)