《数据库》数据跨库、跨表查询和迁移的问题

数据迁移:

一、导出.sql文件

1.1 ID问题

用此方法,在oracle库中,迁移部分表和和数据,经常遇到把源数据库表记录的ID原封不动的插入当前库,导致用户ID重复,或者以后数据无法插入成功。
解决方法:插入数据时,记得修改ID数据,用序列.NEXTVAL或者直接用触发器去插入自增ID.

修改序列步长
select  S_HASYS_DM_DEV_CONFIG.currval from dual;
// 查询也会增加一次
select  S_HASYS_DM_DEV_CONFIG.nextval  from dual;
-- 修改序列步长  可以为正,也可以为负
alter sequence S_HASYS_DM_DEV_CONFIG increment by 1;

-- 触发器隐试自增
create or replace trigger trainuser_trigger
before insert on ek_em_inf_trainuser 
for each row 
begin 
select trainuser_sequence.nextval into :new.ID from dual; 
end;

-- 自增序列
CREATE SEQUENCE trainuser_sequence 
INCREMENT BY 1  
START WITH 1 
NOMAXVALUE  
nocycle 
nocache
1.2跨用户或者跨表查询
  1. 跨库查询
create database link LINK_AGENT_HSRNZY              --数据库别名
connect to HSRNZY identified by hsrnzy20191118  --分别对应用户名和密码
using '*.*.*.*:1521/orarj';                              --域名:端口号/数据库实例

## angent HI_APP_TENANT1224_TEST1216 库
select * from CRM_EVENT_CALL_INFO
##  HSRNZY公共库
select * from hwdp.V_TFC_EVENT_INFO@LINK_AGENT_HSRNZY
  1. 跨表查询
权限:授予新库查询旧库某表的权限
grant select on bu_inf_page_src to ****02180;
grant select on bu_inf_pagecfg to ****02180;
  1. 查询克插入
insert into bu_inf_page_src select * from ****2141.bu_inf_page_src

二、imp命令和exp命令备份迁移数据

待更新

你可能感兴趣的:(数据库)