文章目录

  • 场景
  • 问题解决
    • update后只能单张表
    • set不能使用别名
    • 正确写法使用from
    • 验证
    • 最终SQL

场景

  • 两张表,一张党员表,一张党组织表
  • 党员表里冗余了一个党组织名称,但是党组织更新时,未更新党员表
  • 现在需要使用SQL,将党员表里的冗余党组织名称修改正确
  • PostgreSQL的多表更新语法,与MySQL、Oracle不太一样

问题解决

  • 为了防止更新出错,先把党员表复制一份,使用复制表执行更新SQL操作
  • 无论是生产环境,还是测试环境,数据安全都是很重要的,无论是更新还是删除,一定要慎重,否则造成无法挽回的损失,就只能跑路了(口嗨)
  • 使用复制表操作,并验证结果,没问题后,再去原表操作(建议操作前再备份一次)

update后只能单张表

  • 像之前的 update 多张表,会报错
UPDATE party_member_copy1 t1,
party_organ_structure t2
SET party_organ_name = t2.NAME
WHEREt1.party_organ_id = t2.ID AND t2.record_status = 0
> ERROR:  syntax error at or near ","
LINE 1: UPDATE party_member_copy1 t1,^

set不能使用别名

  • set 后面没法跟别名,即使前面定义了别名也没法使用
UPDATE party_member_copy1 t1
SET t1.party_organ_name = t2.NAME
FROMparty_organ_structure t2where t1.party_organ_id = t2.id and t2.record_status = 0
> ERROR:  column "t1" of relation "party_member_copy1" does not exist
LINE 2: SET t1.party_organ_name = t2.NAME ^

正确写法使用from

  • 前面定义的别名,from后面是可以使用的
  • 定义别名,加不加 as 没影响的
-- 更新copy表
UPDATE party_member_copy1 t1
SET party_organ_name = t2.NAME
FROMparty_organ_structure t2
WHEREt1.party_organ_id = t2.ID AND t2.record_status = 0;

验证

  • 执行后可以使用查询验证下,是否更新正确
  • 更新出错时,会更新0条数据或全部数据,或者更新为某一个值
-- copy表 与 党组织表 名称对比
SELECTt1.party_organ_id,t1.party_organ_name,t2.ID,t2.NAME
FROMparty_member_copy1 t1,party_organ_structure t2
WHEREt1.party_organ_id = t2.ID AND t2.record_status = 0;
-- 原表 与 党组织表 名称对比
SELECTt1.party_organ_id,t1.party_organ_name,t2.ID,t2.NAME
FROMparty_member t1,party_organ_structure t2
WHEREt1.party_organ_id = t2.ID AND t2.record_status = 0;
-- copy 表 和原表对比
SELECTt1.ID,t1.party_organ_id,t1.party_organ_name,t2.party_organ_name
FROMparty_member t1,party_member_copy1 t2
WHEREt1.ID = t2.ID;
  • 查看发现,copy表里的党组织名称,已更新成功,与党组织表名称一致

最终SQL

  • 再次提醒,数据安全,先备份再操作
  • 一下为更新正式表SQL
-- 更新正式表
UPDATE party_member t1
SET party_organ_name = t2.NAME
FROMparty_organ_structure t2
WHEREt1.party_organ_id = t2.ID AND t2.record_status = 0;

PostgreSQL update多张表关联查询更新相关推荐

  1. 如何两张表关联查询?

    如何两张表关联查询select * from table1 a,table2 b where a.id = b.lid === select a.anme, b.bname, c.value from ...

  2. mysql中3张表如何关联查询_mysql三张表关联查询

    三张表,需要得到的数据是标红色部分的.sql如下: select a.uid,a.uname,a.upsw,a.urealname,a.utel,a.uremark, b.rid,b.rname,b. ...

  3. mysql三张表关联查询成绩表_mysql三张表关联查询

    三张表,需要得到的数据是标红色部分的.sql如下: select a.uid,a.uname,a.upsw,a.urealname,a.utel,a.uremark, b.rid,b.rname,b. ...

  4. oracle并行parallel update两张表_Oracle并行更新的两种方式(merge/update内联视图)

    对于Oracle的两表联合更新的场景(有A.B两表,以A.id=B.id关联,根据B表中的记录更新A表中的相应字段),一般有update内联视图和merge两种方式,下面举例介绍: 创建用例表: cr ...

  5. Mysql中实现多表关联查询更新操作

    今天一下要记录一下才行了,每次都要去网上查找方法,每次都难找得要命 Mysql在更新某些字段的数据时,有时候会依据其他表的数据进行更新,需要通过关联后对不同的行更新不同的值,传统的update set ...

  6. SQL 两张表关联查询

    select a.Cj_Name,a.Zz_Name,a.EQTYPE_NAME,a.Equip_GyCode, CASE WHEN a.Equip_Specialty='动设备' THEN 'M' ...

  7. java mongodb 多表关联查询,多条件查询,分页,排序

    前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...

  8. 2022/1/22 北京 mysql 多表关联查询,等值连接、非等值连接,外连接,内连接、自连接

    一.笛卡尔积错误 要查询的俩个字段分别在俩张表 employee_id,department_name.所以要多表关联查询 select * from employees; -- 能查询出107条记录 ...

  9. oracle多表联合查询更新,ORACLE 两表关联更新三种方式

    不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...

  10. MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表

    MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表 有两张表,info1, info2 . info1: info2: 方式一:要用info2中的 ...

最新文章

  1. CSS中浮动布局float(小米布局案例、导航栏案例、overflow)
  2. 企业架构-发布【企业架构框架-TOGAF v0.1.pdf】
  3. mysql 多实例应用配置部署指南
  4. 为什么只有奇次谐波_治理变频器产生谐波的应用
  5. Servlet 介绍
  6. keil c语言绝对值函数,keil编写C程序是不是不能在函数内定义变量啊,求大神
  7. 设计模式之----------适配器模式
  8. 图的存储结构之十字链表、邻接多重表、边集数组
  9. 程序员的恶性循环:加班-没空学习-老是写同等水平代码-无法提升代码质量-老是出BUG-老是需要修改-加班-......
  10. Verilog语言乒乓球机8段译码器
  11. c# 监听 Modern Standby 下的电源状态(Sleep mode)
  12. 上班第一天(3)--一个程序员的成长史(12)
  13. 安徽师大附中%你赛day4T1 金字塔 解题报告
  14. Cygwin 下载安装
  15. HTML 转 PDf 方法一 wkhtmltopdf.exe
  16. 浅谈DSD音频 是发展趋势还是厂商噱头
  17. Xcode直接安装ipa
  18. STM32 软件 I2C Source Files (No Clock Strech)
  19. Compose 类型稳定性注解:@Stable @Immutable
  20. 贪吃蛇html网页小游戏,网页贪吃蛇HTML5小游戏制作

热门文章

  1. Android EditText属性
  2. html2canvas.js的api,html2canvas实现js截图
  3. 2023年厦门大学材料与化工考研考情与难度、参考书及上岸前辈初复试备考经验
  4. 第jiu届蓝桥杯单片机省赛真题_2018第九届蓝桥杯省赛真题 C语言B组 第二题
  5. 威纶通与三菱PLC条码枪解码程序 本程序是威纶通触摸屏USB接头直接插条形码扫码枪
  6. js 判断是不是数组
  7. js实现签名功能(vue中使用电子签名)
  8. 多媒体行业 常用英语
  9. LM358运放(比较器、跟随器)输出最高电压问题的探讨
  10. 【转】PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886