17,377
社区成员
发帖
与我相关
我的任务
分享
--1、一起执行没问题 下面这句话的意思是将user1下的a表数据插入到执行用户中
----有几条插入几条,没有记录插入0条,不会影响insert 后面的那个表的数据。
insert a select * from user1.a;
--2、另外如果你user1下和user2下表很多的话,一个一个赋权是必须的。
---或者如果你权限够大,直接付给要同步的用户下面的权限,这样以后user1或者user2下新增表也能正常查到。
grant select any table to 要同步的用户;
--在user1下执行
grant select on a to 同步的用户;
grant select on b to 同步的用户;
--在user2下执行
grant select on b to 同步的用户;
grant select on c to 同步的用户;
--在同步用户下执行
insert a select * from user1.a;
insert b select * from user1.b;
insert c select * from user2.c;
insert d select * from user2.d;
commit;
--打完收工。。
--举例:用户:U1,U2,U3
表名:U1.T1,U2.T2,U3.T3
--做法:创建一个新的用户U4
CREATE USER U4 IDENTIFIED BY U4;
GRANT CONNECT,RESOURCE TO U4;
GRANT SELECT ANY TABLE TO U4;
GRANT DELETE ANY TABLE TO U4;
GRANT UPDATE ANY TABLE TO U4;
GRANT INSERT ANY TABLE TO U4;
--执行数据复制的话只需要登录到U4上
----假设同步数据 U1.T1到U2.T2,U3.T3
INSERT INTO U2.T2 SELECT * FROM U1.T1;
INSERT INTO U3.T3 SELECT * FROM U1.T1;
COMMIT;
---如果你没有权限建立用户,那就直接把权限付给U1,然后在U1上登录执行操作也可以。
--如果硬要用plsqldev的话
--那就先导出数据为sql,然后再倒入,不过需要切换用户。