首页 > 数据库 >mySql,Pgsql,kingbase连表更新

mySql,Pgsql,kingbase连表更新

时间:2023-01-17 12:44:07浏览次数:61  
标签:连表 code detail kingbase Pgsql SET aId main id

原文链接: https://www.jianshu.com/p/0df5797f7b73
Table a: id | 主键 code | 编码 Table b: id | 主键 aId | 关联a表id code | 编码 name | 名称

例,a、b表一对一,更新a表的code为b表code:

MySQL:

UPDATE a JOIN b ON a.id = b.aId SET a.code=b.code;
通用语法:
UPDATE table1 inner/left/right join table2/(select columns from table3  
        [inner/left/right join on condition]  [where conditions]) as t3
ON condition
SET column1 = value1,column2 = value2,...
[WHERE conditions]; 

PgSQL:

方法1.

UPDATE a SET code=b.code FROM b where a.id = b.aId;

方法2.较为灵活

UPDATE  a
SET     code = b.code
FROM    (
        SELECT  a.id, b.aId, b.code
        FROM    a
                INNER JOIN b  ON a.id = b.aId
        ) AS tb
WHERE   a.id = tb.id

更多例子:

Table main:
    id   | 主键 
    code | 编码

Table detail:
    id   | 主键 
    aId  | 关联main表id

detail表详情数据通过aId关联main表,将detail表的aId修改为对应的main表中以A开头的code中的数字

UPDATE detail 
SET aId = cast( SUBSTRING( tbs.code, E'([0-9]+)' ) AS INT8 ) 
FROM
    (
        SELECT
            b.id,b.aId, a.code
        FROM
            detail b 
            INNER join main a on a.id = b.aId
        WHERE
            a.code LIKE 'A%'  
    ) as tbs
where detail.id =tbs.id


标签:连表,code,detail,kingbase,Pgsql,SET,aId,main,id
From: https://www.cnblogs.com/fswhq/p/16992373.html

相关文章

  • jpa连表查询
    JPAQuery<TSscPlanDayExecutePO>jpaQuery=jpaQueryFactory.selectFrom(planDayExecutePO).leftJoin(tSscPlanDayPO).on(tSscPlanDayPO.id.eq......
  • 【数据库】PostgreSQL/PgSql-根据模式名和字段名查询有该字段的所有表信息【通过表元
    【数据库】PostgreSQL/PgSql-根据模式名和字段名查询有该字段的所有表信息【通过表元数据信息和函数实现】...哥们要飞于2022-08-2314:51:00发布304收藏文章标签:数......
  • KingbaseES的表空间
    1、表空间的概念KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在KingbaseES中表空间实际上就是给表指定一个存储目录。2、表空间的作......
  • 命令行部署KingbaseES流复制
    建立系统数据库安装用户组及用户,在所有的节点执行root用户登陆服务器,创建用户组及用户并且设置密码groupadd-g2000kingbaseuseradd-Gkingbase-g2000kingbase-m......
  • Oracle通过数据库链连接KingbaseES
    测试环境:ip数据库版本192.168.254.135oracle11g192.168.254.137V008R006C005B0023通过oracle官网得知,Oracle使用DG4ODBC作为连接到其他非Oracle数据库......
  • KingbaseES 等待事件之LWLock lock_manager
    背景相信我们不止一次遇到过一个等待事件:LWLocklock_manager。下面我们聊聊这个等待事件的含义,产生原因,以及解决方法。等待事件含义当数据库维护共享锁的内存区域以在......
  • KingbaseES V8R3数据库运维案例之---不完整的启动包(incomplete startup packet)复现
    案例说明:在KingbaseESV8R3数据库的sys_log日志中,出现以下故障信息“不完整的启动包(incompletestartuppacket)”日志信息。本案例复现此日志信息发生的原因。如下图所示......
  • KingbaseES数据目录结构
    KingbaseES数据库结构[kingbase@postgresV8]$tree-LP2data/.├──data│  ├──base#存储用户创建的数据库文件及隶属于用户数据库......
  • KingbaseES 咨询锁
    传统的事务性锁,读/写会自动加锁,读/写完成后会自动解锁(加解锁机制在细节上复杂),这是一种隐式的锁机制。对于加锁后的并发控制,也就是默认的写不阻塞读,是通过MVCC机制解决的。......
  • KingbaseES V8R6运维案例之---普通表toast表故障修复
    案例说明:数据库在日常的维护过程中,在执行表查询(select),如下图所示,出现“couldnotreadblock0infile"base/16385/16408":readonly512of8192bytes”故障,通过对“......