EXPDP/IMPDP单表住外键

以前都知道在导入单表的时候主外键会有问题,如果主表不存在你自己直接导入子表会出现问题,今天测试了一下

SQL> create table test
  2  as
  3  select * from dba_users;
 
Table created

alter table TEST
add constraint PK_TEST primary key (USER_ID)

SQL> create index ind_test
  2  on test(username);
 
Index created
 
SQL> create table test0
  2  as
  3  select * from v$session;
 

alter table TEST0
add constraint FK_TEST foreign key (USER#)
references TEST (USER_ID);

进行导出

[oracle@b000-vmpomstestdb ~]$ expdp pp/gelc123 tables=test  dumpfile=TEMP_DIR:test20100826.dmp logfile=TEMP_DIR:test20100826.log

Export: Release 10.2.0.1.0 - 64bit Production on Friday, 07 December, 2012 19:25:15

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Starting "PP"."SYS_EXPORT_TABLE_01":  pp/******** tables=test dumpfile=TEMP_DIR:test20100826.dmp logfile=TEMP_DIR:test20100826.log
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
. . exported "PP"."TEST"                                 17.93 KB     101 rows
Master table "PP"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for PP.SYS_EXPORT_TABLE_01 is:
  /devrman/expdp/test20100826.dmp
Job "PP"."SYS_EXPORT_TABLE_01" successfully completed at 19:25:25

[oracle@b000-vmpomstestdb ~]$ expdp pp/gelc123 tables=test0 dumpfile=TEMP_DIR:test120100826.dmp logfile=TEMP_DIR:test120100826.log

Export: Release 10.2.0.1.0 - 64bit Production on Friday, 07 December, 2012 19:42:48

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Starting "PP"."SYS_EXPORT_TABLE_01":  pp/******** tables=test0 dumpfile=TEMP_DIR:test120100826.dmp logfile=TEMP_DIR:test120100826.log
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . exported "PP"."TEST0"                                43.98 KB      41 rows
Master table "PP"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for PP.SYS_EXPORT_TABLE_01 is:
  /devrman/expdp/test120100826.dmp

然后进行导入

1、在未导入主表的情况下

[oracle@b000-vmpomstestdb expdp]$ impdp pptest/gelc123  dumpfile=TEMP_DIR:test120100826.dmp logfile=TEMP_DIR:test120100826.log remap_schema=pp:pptest;

Import: Release 10.2.0.1.0 - 64bit Production on Friday, 07 December, 2012 19:43:06

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Master table "PPTEST"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "PPTEST"."SYS_IMPORT_FULL_01":  pptest/******** dumpfile=TEMP_DIR:test120100826.dmp logfile=TEMP_DIR:test120100826.log remap_schema=pp:pptest
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "PPTEST"."TEST0"                            43.98 KB      41 rows
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
ORA-39083: Object type REF_CONSTRAINT failed to create with error:
ORA-00942: table or view does not exist
Failing sql is:
ALTER TABLE "PPTEST"."TEST0" ADD CONSTRAINT "FK_TEST" FOREIGN KEY ("USER#") REFERENCES "PPTEST"."TEST" ("USER_ID") ENABLE
 
Job "PPTEST"."SYS_IMPORT_FULL_01" completed with 1 error(s) at 19:43:09

2、在导入主表的情况下

[oracle@b000-vmpomstestdb expdp]$ impdp pptest/gelc123  dumpfile=TEMP_DIR:test120100826.dmp logfile=TEMP_DIR:test120100826.log remap_schema=pp:pptest;

Import: Release 10.2.0.1.0 - 64bit Production on Friday, 07 December, 2012 19:57:15

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Master table "PPTEST"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "PPTEST"."SYS_IMPORT_FULL_01":  pptest/******** dumpfile=TEMP_DIR:test120100826.dmp logfile=TEMP_DIR:test120100826.log remap_schema=pp:pptest
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "PPTEST"."TEST0"                            43.98 KB      41 rows
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Job "PPTEST"."SYS_IMPORT_FULL_01" successfully completed at 19:57:19

时间: 2024-10-04 14:04:12

EXPDP/IMPDP单表住外键的相关文章

hibernate的关联关系,是否数据库表中有外键没有关系?

问题描述 hibernate的关联关系,是否数据库表中有外键没有关系? hibernate的关联关系,是否数据库表中有外键没有关系?昨天使用了hibernate做了一个多对一的关系,然后在做数据库字段的时候,一开始并没有去建立外键约束,只是把关联字段的信息放了上去,然后CRUD操作都没问题,然后看了一篇帖子,上面看到数据库表中有外键约束,这时候才想起来这个事情,我加了外键以后也没什么问题,再去掉还是没有问题,那么这里是加还是不加外键呢?hibernate自己处理好了吗?有什么区别吗?以后是加好还

数据库表的外键应用,详细见下

问题描述 数据库表的外键应用,详细见下 如果ABC三张表,A引用B,B引用C,但是A里又有外键引用C,我该如何设计呢 解决方案 能说明下引用的字段么? 解决方案二:

java-问题 如何用Java程序实现,父表的主键插入到子表的外键中?

问题描述 问题 如何用Java程序实现,父表的主键插入到子表的外键中? 需求从excel导入数据到mysql数据库,然后父表的主键是自增列,插入数据同时把主键插入子表的外键中(我已经把主表的数据插入了)

数据-Mysql中设置表的外键的时候报错

问题描述 Mysql中设置表的外键的时候报错 这个是原句子: ALTER TABLE emp ADD CONSTRAINT id_fk FOREIGN KEY (deptno) REFERENCES Dept (deptno); 就是想把emp表的deptno设置为外键,该列的数据引用Dept表的主键列deptno的数据.然后,报错信息如下: Cannot add or update a child row: a foreign key constraint fails (emp.#sql-1a

mysql-请问数据库表中可以在一个表里面有两个关联同一个表的外键吗?

问题描述 请问数据库表中可以在一个表里面有两个关联同一个表的外键吗? 具体是这样的: 我有一个用户表user,一个好友表fans. fans中有三个字段 id,user_id,fans_id,其中user_id和fans_id都是跟user表的id关联的外键,我发现这样会报错. 可是用户跟好友的信息又要与用户表的信息关联,请问各位大神,怎样才不会报错或者有什么好一点的解决办法吗? 解决方案 可以的 FOREIGN KEY (user_id) REFERENCES user(id), FOREIG

select-两表有外键关系,但没有外键约束,根据A 表ID 查找B 表

问题描述 两表有外键关系,但没有外键约束,根据A 表ID 查找B 表 Select s.ID as SID,s.NAME as SNAME,d.ID as DID,d.NAME as DNAME,d.SEQ as DSEQ,d.SYSDATE as DSYSDATE,d.ISACTIVES as DISACTIVES From TSPC as s,TSPCDETAIL as d where s.ID=d.SPECID and SID=#{SID},根据id 查找 TSPCDETAIL 可以这样写

mysql-mySql多表查询,有中间表和外键关联

问题描述 mySql多表查询,有中间表和外键关联 select a.id,a.name, sum(case when d.STATUS=0 then 1 else 0 end) as 待处理, sum(case when d.STATUS=1 then 1 else 0 end) as 带跟进, sum(case when d.STATUS=2 then 1 else 0 end) as 已结束, sum(case when d.STATUS=3 then 1 else 0 end) as 已完

优化 加载 select-在做Web开发,select选择框的内容是表的外键,如何优化使得页面加载的速度变快

问题描述 在做Web开发,select选择框的内容是表的外键,如何优化使得页面加载的速度变快 (手机端网页)两张表:User表,Artical表.User表是Artical表的外键,我需要在页面上添加数据,但Username表里的内容很多,select选择框加载很慢,并且这个select可以不显示. 求解怎么进行优化?

Oracle批量执行sql语句之禁用所有表的外键_oracle

在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name