zoukankan      html  css  js  c++  java
  • PostgreSQL Update 根据B表更新A表

    PostgreSQL 手册上的update语法如下:

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
        SET { column_name = { expression | DEFAULT } |
              ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
              ( column_name [, ...] ) = ( sub-SELECT )
            } [, ...]
        [ FROM from_list ]
        [ WHERE condition | WHERE CURRENT OF cursor_name ]
        [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
    

    下面是根据A表更新B表的例子:

    --创建表A:t_1
    create table t_1
    (
    id int,
    t_id varchar(200),
    name varchar(20)
    );
    
    --插入数据到表A:t_1
    insert into t_1 values (1,'1','a');
    insert into t_1 values (2,'2','a');
    insert into t_1 values (3,'3','a');
    insert into t_1 values (4,'4','a');
    insert into t_1 values (5,'5','b');
    insert into t_1 values (6,'6','b');
    insert into t_1 values (7,'7','a');
    
    --创建表B:t_map
    create table t_map
    (
    old_id varchar(200),
    new_id varchar(200)
    );
    
    --插入数据到表B:t_map
    insert into t_map values('1','001');
    insert into t_map values('2','002');
    insert into t_map values('3','003');
    insert into t_map values('4','004');
    insert into t_map values('5','005');
    insert into t_map values('6','006');
    
    select * from t_1;
    

      

    select * from t_map;
    

      

    --根据表t_map的old_id更新表t_1的t_id为表t_map的new_id
    update t_1 t
    set t_id = map.new_id
    from t_map map
    where t.t_id = map.old_id
    and t.name = 'a'

    更新后如下:

    select * from t_1 oder by id;
    

      

  • 相关阅读:
    Docker--使用
    腾讯云发送短信
    Mysql--查询基础
    flask10--数据库链接池(通用),wtforms
    Flask11--Flask-script,sqlalchemy
    序列化 json
    第五章-算术运算符
    计算机网络自顶向下的方法-第二章 应用层
    第三章-数据类型
    第三章-常量和宏定义
  • 原文地址:https://www.cnblogs.com/xuenb/p/8385973.html
Copyright © 2011-2022 走看看