无法更新表临时表,因为它没有副本身份,并在Postgres中发布更新

时间:2019-05-06 07:35:41

标签: database postgresql database-replication

我使用Postgres数据库进行复制。
我在postgres函数中使用了临时表。通过联接更新临时表时,我无法更新。

下面是Postgres查询(tempallergyupdates是临时表):

 drop table if exists tempallergyupdates;
 create temp table tempallergyupdates(patientallergyid int,updateid int, newupdateid int);
 update tempallergyupdates set patientallergyid = 1;

以上查询引发以下异常:

  

无法更新表“ tempallergyupdates”,因为该表没有   副本身份并发布更新

1 个答案:

答案 0 :(得分:1)

我们刚遇到此问题并找到了解决方案。事实证明,PostgreSQL不喜欢缺少主表(涉及复制)的表,甚至临时表。因此,要么在您的临时表中添加一个,要么在创建表后使用如下语句:

ALTER TABLE table_name REPLICA IDENTITY FULL;