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;
    

      

  • 相关阅读:
    poj3067 Japan(树状数组)
    Codeforces 482C Game with Strings(dp+概率)
    LeetCode -- 推断链表中是否有环
    螺旋矩阵——正逆序
    POJ 3905 Perfect Election(2-sat)
    设计模式 之 桥接
    Codeforces Round #257 (Div. 2)
    [LeetCode][Java] Minimum Window Substring
    Unity特殊目录和脚本编译顺序
    jQuery插件 -- Cookie插件
  • 原文地址:https://www.cnblogs.com/xuenb/p/8385973.html
Copyright © 2011-2022 走看看