我正在使用PostgreSQL数据库。我有两个表,即company
和bl_location
。两个表中都有一个字段location_id
。现在,我试图将location_id
的值从bl_location
复制到company
。 company
的主键是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
我无法弄清楚我的查询出了什么问题。
答案 0 :(得分:0)
无论您是否意识到,您的语句都在显式事务中运行,并且前面的语句之一是同一事务一定引起了错误。
要调试此功能,请考虑设置log_statement = 'all'
,以便记录所有语句。通过跟踪来自相同后端PID的所有语句,您将能够识别出罪魁祸首。