我正在使用SQL Developer访问oracle数据库。我想导出该表并保持主键生成。 由于我不能使用SQLloader,我只能使用“export to sql”。
以下是一个例子:
Database1是包含我要复制到另一个数据库(Database2)的数据的数据库。 Database1上的下一条记录将获得主键200。
Database2应该从Database1获取所有数据(包括主键,外键等等)。当我删除表并使用sql开发人员给我的sql重新创建它并创建一个新记录时,它将获得ID 92(例!!)。
这肯定会引发我的问题。
有没有办法创建表并确保它将获得与运行Database1时运行相同的主键?
答案 0 :(得分:1)
在您使用序列的情况下,您可以在桌面的其中一个触发器中找到它。接下来应该改变如下的顺序:
DROP SEQUENCE my_seq;
CREATE SEQUENCE my_seq
START WITH 200
MAXVALUE 9999999999999999999
MINVALUE 1
这样就可以加载数据了。但我认为将PK从一个数据库复制到另一个数据库并不是一个好主意,因为PK对存储级别数据敏感,而不是业务数据