获取SQL状态:25P02,同时尝试使用另一个表中的数据更新表

时间:2018-11-29 13:03:00

标签: postgresql sql-update

我正在使用PostgreSQL数据库。我有两个表,即companybl_location。两个表中都有一个字段location_id。现在,我试图将location_id的值从bl_location复制到companycompany的主键是company_id,它也存储在bl_location中。我正在尝试以下查询:

UPDATE company 
    SET location_id = bl_location.location_id 
from bl_location  
where company.company_id = bl_location.company_id;

使用我在网上找到的语法:

update table1
set col1 = . . .
from table2
where table1.id = table2.table1_id

但是我在pgAdmin工具的控制台中得到了以下内容:

ERROR:  current transaction is aborted, commands ignored until end of transaction block

********** Error **********

ERROR: current transaction is aborted, commands ignored until end of transaction block
SQL state: 25P02

我无法弄清楚我的查询出了什么问题。

1 个答案:

答案 0 :(得分:0)

无论您是否意识到,您的语句都在显式事务中运行,并且前面的语句之一是同一事务一定引起了错误。

要调试此功能,请考虑设置log_statement = 'all',以便记录所有语句。通过跟踪来自相同后端PID的所有语句,您将能够识别出罪魁祸首。