postgresql - 获取 SQL 状态:25P02 尝试使用来自另一个表的数据更新表
问题描述
我正在使用 PostgreSQL 数据库。我有两个表,即company
和bl_location
。我location_id
在两个表中都有一个字段。现在我正在尝试将 from 的值location_id
复制bl_location
到company
。company
is的主键,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
我无法弄清楚我的查询有什么问题。
解决方案
无论您是否意识到,您的语句都在显式事务中运行,并且前面的语句之一是同一个事务必须导致错误。
要对此进行调试,请考虑设置log_statement = 'all'
以便记录所有语句。通过跟踪来自同一后端 PID 的所有语句,您将能够识别出罪魁祸首。
推荐阅读
- visual-studio-code - 如何在 VSCode 中检索活动的 CustomTextEditor
- java - 使用 mockito 和 Junit5 使用参数模拟静态 void 方法
- qt - 需要有关 font.pointSize 和 font.pixelSize 的帮助
- javascript - Firebase 使用 1 个参数调用。预计没有
- excel - 处理前重新格式化 Excel 文档
- mysql - 仅将 MySQL uniq 行增加一个请求
- visual-studio-code - 如何打开这个“控制台”在 VS Code 中安装包?
- security - 如果使用 SSL,是否有必要对 POST 的数据进行哈希处理?
- php - 如何在 PHP 中使用 simple_html_dom 查找视频源 url
- powershell - PowerShell 枚举评估