使用SQL Developer导出并保留主键

时间:2016-05-23 10:31:04

标签: database oracle oracle-sqldeveloper

我正在使用SQL Developer访问oracle数据库。我想导出该表并保持主键生成。 由于我不能使用SQLloader,我只能使用“export to sql”。

以下是一个例子:

Database1是包含我要复制到另一个数据库(Database2)的数据的数据库。 Database1上的下一条记录将获得主键200。

Database2应该从Database1获取所有数据(包括主键,外键等等)。当我删除表并使用sql开发人员给我的sql重新创建它并创建一个新记录时,它将获得ID 92(例!!)。

这肯定会引发我的问题。

有没有办法创建表并确保它将获得与运行Database1时运行相同的主键?

1 个答案:

答案 0 :(得分:1)

在您使用序列的情况下,您可以在桌面的其中一个触发器中找到它。接下来应该改变如下的顺序:

 DROP SEQUENCE my_seq;

 CREATE SEQUENCE my_seq
 START WITH 200
 MAXVALUE 9999999999999999999
 MINVALUE 1

这样就可以加载数据了。但我认为将PK从一个数据库复制到另一个数据库并不是一个好主意,因为PK对存储级别数据敏感,而不是业务数据