Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将选定的PostgreSQL数据从一个数据库转储到另一个数据库_Sql_Database_Postgresql_Foreign Keys_Relational Database - Fatal编程技术网

如何将选定的PostgreSQL数据从一个数据库转储到另一个数据库

如何将选定的PostgreSQL数据从一个数据库转储到另一个数据库,sql,database,postgresql,foreign-keys,relational-database,Sql,Database,Postgresql,Foreign Keys,Relational Database,我有三个相互之间有外键关系的表 表学校将手动上载。学生将登录该网站并检查他们的分数 整个数据将被上传到另一个不同实例的新数据库中 在另一个实例中,DB1中的学生的登录Idstud_id为10,DB2中的学生的登录Idstud_id为1 为了保留student_marks表的数据,我打算执行以下步骤: 1. Dump student_marks table from DB1 2. Copy it to DB2 注意:两个数据库的stud_id都不同 有没有办法做到以上几点 请参阅下表 学校: 学

我有三个相互之间有外键关系的表

表学校将手动上载。学生将登录该网站并检查他们的分数

整个数据将被上传到另一个不同实例的新数据库中

在另一个实例中,DB1中的学生的登录Idstud_id为10,DB2中的学生的登录Idstud_id为1

为了保留student_marks表的数据,我打算执行以下步骤:

1. Dump student_marks table from DB1
2. Copy it to DB2
注意:两个数据库的stud_id都不同

有没有办法做到以上几点

请参阅下表

学校:

学生:

学生成绩:


提前谢谢

首先禁用外键约束,然后转储数据,然后再次启用外键约束,或者您可以在迁移数据后设置外键约束。

您提到的是登录Id,但我在表中只看到Id和stud\u Id。请澄清。CREATETABLE语句始终最好保持清晰。您还需要提供一些如何在DBs之间可靠地转换ID的信息。如果我在转储后设置了外键,那么student_marks表中的stud_id和student表中的id仍然会不同。我怎样才能通过在两个表中都将Id列设置为auto increment来获取记录?如果是这样,那么只需首先迁移数据,然后将列作为自动增量。如果不是这种情况,请共享您的架构。将数据从一个实例的一个数据库迁移到另一个实例的另一个数据库后,不会有任何读写权限问题。您可以尝试这种方法,如果您是数据库管理员,那么应该不会有任何问题。
 id  | name| place 
-----+-------------
 1 |  sch1  | test
id  | school_id| stud_name 
-----+-------------
 1   |  1       | stud1
 id  | stud_id| subj1 | subj2
-----+-----------------------
 1   |  1    | 30      | 30