精华内容
下载资源
问答
  • 将table_b中的数据更新到table_a中指定的数据中去 UPDATE table_a ta,(SELECT tb_value1,tb_value2 FROM table_b WHERE tb_value3 = 'value3') tb SET ta.ta_value1 = tb.tb_value1 WHERE ta.ta_value2 = tb.tb_...

    将table_b中的数据更新到table_a中指定的数据中去

    UPDATE
         table_a ta,(SELECT tb_value1,tb_value2 FROM table_b WHERE tb_value3 = 'value3') tb
    SET ta.ta_value1 = tb.tb_value1 
    WHERE ta.ta_value2 = tb.tb_value2;

    展开全文
  • 一、创建结构create table test1( id varchar2(10) , val varchar2(20), name varchar2(20));create table test2( id varchar2(10), val varchar2(20) , name varchar2(20) );二、插入数据insert into test1 ...

    一、创建表结构create table test1( id varchar2(10) , val varchar2(20), name varchar2(20));create table test2( id varchar2(10), val varchar2(20) , name varchar2(20) );

    二、插入数据insert into test1 values ('1','1111','gsdg');

    insert into test1 values ('2','222vs','dfgd');

    insert into test1 values ('2','2222sdf','dg');

    insert into test1 values ('3','33sdf33','dgd');

    insert into test1 values ('4','44d44','dgdfg');

    insert into test1 values ('6','66dgd66','hhfg');

    commit;

    insert into test2 values ('1','aa332aa','77');

    insert into test2 values ('2','bb34b3b','7538');

    insert into test2 values ('3','c34ccc','835');

    insert into test2 values ('4','dd34dd','3255');

    insert into test2 values ('5','ee34e','596666');

    commit;

    三、更新语句merge into test1

    using (select * from test2 t)test2

    on (test1.idd = test2.idd)

    when matched then

    update set test1.val = test2.val,test1.name=test2.name

    展开全文
  • 1.查询出数据更新到另一张表 需求:从A查询出字段数据更新到B对应的字段 示例:当table_a中的b_id=table_b的id时,将table_b中的sn,filed1更新到table_a 中sn,filed1字段 -- 更新数据 UPDATE `...

    1.查询出数据更新到另一张表

    需求:从A表查询出字段数据,更新到B表对应的字段

    示例:当table_a表中的b_id=table_b表的id时,将table_b表中的sn,filed1更新到table_a 表中sn,filed1字段

    -- 更新数据
    UPDATE `table_a` r
    INNER JOIN (SELECT id,sn,filed1 FROM `table_b`) t ON r.b_id= t.id
    SET r.sn = t.sn,r.filed1 = t.filed1 

    2.一张表查询出数据插入到另一张

    insert into table_a(字段1,字段2,字段3,....)  select a,b,c,.... from table_b where 条件 

    示例:

    insert into table_a(`name`,`age`,`gender`) select b_name,b_age,b_gender from table_b where id = 5;

    说明:

    1、table_a表插入的字段个数必须同select后面跟的字段个数一致

    2、where条件可以写多个

    3、select后面跟的字段可以写固定值(部分写死,全部写死相当于直接insert,这样就没必要查询)

    示例:insert into table_a(`name`,`age`,`gender`) select '张三', 18, b_gender from table_b where id = 5;

    展开全文
  • 一、第一我们假设A是主,B是副,业务需求是是将A数据导入B,好那么我们需要做的就是采用dblink的方式,将A所有数据查询出来然后插入B。ps:这里我将给出一张测试用USR(A,B两张都是USR)...

    首先我们先明确需求是什么

    一、第一我们假设A表是主表,B表是副表,业务需求是是将A表的数据导入到B表,好那么我们需要做的就是采用dblink的方式,将A表所有数据查询出来然后插入到B表。ps:这里我将给出一张测试用表USR(A,B两张表都是USR)

    操作如下:

    1、首先我们登录A表数据库,然后以system身份登录

    2、赋予源库的用户xxx(这里就是)创建dblink的权限我这里是lyq(这个是你数据库用户,看你自己的就好)

    语句如下:grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to LYQ;  

    然后我们查询下赋予权限是否成功,语句如下:

    select * from user_sys_privs where privilege like upper('%DATABASE LINK%');

    3、用LYQ身份登录数据库,然后创建dblink

    create database link DBLINK_TEST connect to scott identified  by "123456" using '172.16.159.26:1521/test';

    好了到这一步我们需要进行详细的说明,首先看语句中的SCOTT,这个是B表所属数据库的用户名; identified  by "123456"这里的123456是B表数据库的密码;172.16.159.26:1521/test,这里的172.16.159.26:1521,是B表所在的数据的地址,1521为Oracle端口号,test是数据库名。

    在创建dblink结束后我们将其重命名一下(同义词):

    create or replace SYNONYM USER_COPY for "USR" @DBLINK_TEST;

    然后我们测试下创建dblink成功没有,执行下边的语句

    select * from USER_COPY;

    在平时创建时我们可能会创建失败这个时候就需要删除dblikn还有同义词,我将语句放在下边

    drop database link DBLINK_TEST;
    drop synonym USER_COPY;
    

    4、将A表数据导入到B表

    这里我们是跨库操作所以创建了dblink,有了dblink我们执行下边这句sql就好了

    大致格式:insert into USER_COPY select * from tableA (这里可以输入过滤条件,比如where id=xxx)

    注意这里的 USER_COPY就是我们的B表,没看明白的返回去看看第3步,执行晚之后我们看看B表的数据

    到这里就完事了

    二、数据同步

    数据同步,我这里的遇到的业务需求是将A表所有数据导入到B表,然后当A表中有DML(增删改)操作时B表也要随之变化,在这里有第一步做铺垫我们后续工作就方便了,思路就是dblink配合TRIGGER(触发器),一旦检测到DML操作时我们就更新B表

    1、用system身份登录A表所属数据库对角色(LYQ)进行赋权

    GRANT CREATE ANY PROCEDURE TO "LYQ" ;
    GRANT CREATE ANY SEQUENCE TO "LYQ" ;
    GRANT CREATE ANY TRIGGER TO "LYQ" ;
    GRANT CREATE ANY TABLE TO "LYQ" ;
    GRANT UNLIMITED TABLESPACE TO "LYQ" ;
    GRANT CREATE DATABASE LINK TO "LYQ" ;
    

    如果需要移除权限用下边的这条语句

    REVOKE SELECT ANY PROCEDURE FROM "LYQ";

    2、切换回LYQ数据库角色,创建dblink

    这里我们要创建dblink,步骤就是“一中的第3步”

    3、创建触发器(重点)

    代码如下:

    CREATE OR REPLACE TRIGGER ds_trigger 
    BEFORE INSERT OR UPDATE OR DELETE ON ANLIKU.USR FOR EACH ROW
    declare
        integrity_error exception;
        errno            integer;
        errmsg           char(200);
        dummy            integer;
        found            boolean;
    BEGIN
        IF inserting THEN
          insert into USER_COPY(ID, NAME, AGE) values(:NEW.ID, :NEW.NAME, :NEW.AGE);
    ELSIF updating THEN
    UPDATE USER_COPY SET ID=:NEW.ID, NAME=:NEW.NAME, AGE=:NEW.AGE WHERE ID=:OLD.ID;
    ELSIF deleting THEN
    DELETE FROM USER_COPY WHERE ID=:OLD.ID;
        END IF;
    exception
        when integrity_error then
           raise_application_error(errno, errmsg);
    END;
    
    如果创建失败了就需要删除触发器重新创建,删除语句如下
    DROP TRIGGER ds_trigger;
    

     

    总结:好了到这里我们关于数据库同步的问题就算是解决了,思路就是触发器还有dblink,当然了也可以采用定时器的然后到一定的时间执行数据库的备份,有需要的朋友可以自行百度,谷歌找一找相关的博客,我这里提供了两个思路,在我本地完全能够运行,如果报错没有网络监听就需要配置Oracle网络。

     

     

     

     

     

     

     

     

    展开全文
  • 一张表查询数据插入到另一张表, 插入数据 数据来自另一张表 学生:student 姓名:xm 性别:xb 年龄:nl 年级:nj 用户:userName 用户名称:userName 性别:sex 年龄:year 班级:class insert into ...
  • 主要介绍了mysql实现查询数据并根据条件更新到另一张表的方法,结合实例形式分析了mysql多关联查询、更新等相关操作技巧,需要的朋友可以参考下
  • mysql更新一张表数据到另一张表

    千次阅读 2019-05-07 17:06:00
    mysql更新一张表数据到另一张表 解决方法: 例如,把tb_account的ac_name字段的值更新到tb_account_channelgroup(存有tb_account的ac_id字段,也就是说tb_account是一方,tb_account_channelgroup是...
  • 一张表数据添加到另一张表 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:Visual Studio 作者:李继金 撰写时间:2019年7月6日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
  • 成绩T1,记录学生成绩,T2是一张加分的,现在用T2给少数名族学生加分。 成绩T1 PID SCORE ISMINORITY ---- ---------- ---------- 1 670 N 2 620 N 3 600 N 4 520 Y 5 480 N 6
  • 【mysql】复制一张表数据到另一张表

    万次阅读 多人点赞 2018-11-23 20:06:14
    解法一: ...CREATE TABLE 数据和结构,创建3 同时复制1数据和结构到表3 CREATE TABLE table3 SELECT * FROM table1 解法三: CREATE TABLE LIKE 结构, 创建4同时复制1的结构到表...
  • UPDATE table1 a INNER JOIN table2 b ON a.两关联的字段 = b.两关联的字段 SET a.要更新的字段 = b.已存在的字段;
  • UPDATE platform_alaeat.ae_member a, (SELECT buyer_id AS buyer_id, channel_id AS channel_id FROM platform_alaeat.ae_order WHERE channel_id IS NOT NULL AND buyer_id IS NOT NULL AND first_order = 1 ...
  • 数据库管理员可以向访问数据库中存储过程的应用程序授予适当的权限,而不向基础数据库提供任何权限。 附上代码 -- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除 DROP PROCEDURE IF EXISTS ...
  • 写在前面昨天本人用MySql进行简单的数据分析的时候,遇到了一个问题——用一张表内查找数据更新另一张表的部分数据。由于本人以前基本上没有用MySql处理过数据,因而在此过程中遇到了诸多问题。先将正确的方法...
  • update macdb r inner join (select mac,`打位` from g_...需求:从A查询出字段数据更新到B对应的字段 示例:当table_a中的b_id=table_b的id时,将table_b中的sn,filed1更新到table_a 中sn,filed...
  • mysql把查询后的数据更新到另一张表 update tableA A inner join (select * from tableB where ...) B on B.XX = A.XX AND B.XX2 = A.XX2 AND ... SET A.XX = b.XX ,...
  • mysql 根据一张表数据更新另一张表 sql示例 update a ,b  set  a.name = b.name  where a.id = b.id 一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果tb1和...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Mongo基于一张表数据更新另一张表

    千次阅读 2019-05-23 16:22:02
    业务场景中,经常有这样一个需求,就是根据A中的信息,更新B的某个字段,在关系型数据库中,这个需求很简单,一条SQL搞定: update B set B.f1=A.a1 where xxxx 但在mongo数据库中,一条SQL就解决不了。好在...
  • SQL使用一张表数据更新另一张表

    千次阅读 2015-06-28 16:16:26
    表结构功能SQL ServerAccess ...用表B的数据(mc列)更新表A的mc列 SQL Server update A SET A.mc = b.mc FROM A ,B WHERE A.bmbh = B.bmbh and A.xmbh = B.xmbh; Access update A, B set A.mc = B.mc where A.
  • 现有需求: ...A和B通过field3和field5字段来关联,需要把A的field2字段的数据更新到B的field5字段中 >> 适合全表更新,不需要全表更新的话添加where条件 update B b set b.f...
  • oracle从一个中获取数据更新到另一个(两无关联关系) 想到的唯一解决办法 行数定义时要和被修改的数据表的行数相同 declare cursor cor is select m.id from 提供数据表 m where rownum<=行数; n_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 763,088
精华内容 305,235
关键字:

一张表的数据更新到另一张表