pgAdmin中Query Editor执行查询后结果表字段只读,如何修改数据?
查询结果集只读无法修改的解决方法
方法1:直接在结果集编辑(需满足前提条件)
查询编辑器默认返回的结果是只读快照,要解锁编辑权限需同时满足以下要求:
- 你的查询仅涉及单张表,没有多表关联、聚合计算、
DISTINCT去重、分组等操作 - 查询语句必须包含该表的主键字段,无需展示也要写入
SELECT列表中 - 你当前使用的数据库账号拥有对应表的
UPDATE修改权限
满足以上条件后,结果集的单元格会自动解锁,双击对应字段即可修改内容,修改完成后提交生效即可。
方法2:通过UPDATE语句修改(通用方案,无场景限制)
如果查询不满足可编辑要求,直接执行修改语句是更稳妥的方案:
- 从现有查询结果中提取要修改行的唯一标识(一般是主键值)
- 先执行查询确认目标行避免误操作:
SELECT * FROM 目标表名 WHERE 主键字段 = 待修改行的主键值;
- 执行修改语句,可同时修改多个字段:
UPDATE 目标表名 SET 字段1 = '新值1', 字段2 = '新值2' WHERE 主键字段 = 待修改行的主键值;
- 生产环境操作建议先开启事务,确认修改无误后再提交,出错可回滚:
BEGIN TRANSACTION; -- 先执行上面的UPDATE语句 -- 执行SELECT确认修改结果正确后执行COMMIT,有误则执行ROLLBACK回滚 COMMIT; -- ROLLBACK;

内容的提问来源于stack exchange,提问作者Ярослав
相关产品推荐
相关产品推荐

