【发布时间】:2021-05-01 00:29:15
【问题描述】:
我有几个用外键相互关联的表。每个表都有一个自动增量的主键。每个表中有几千行。
这是我的桌子:
CREATE TABLE table1 (
id INT AUTO_INCREMENT PRIMARY KEY,
val INT
);
CREATE TABLE table2 (
id INT AUTO_INCREMENT PRIMARY KEY,
val INT,
table1_id INT REFERENCES table1 (id)
);
INSERT INTO table1 VALUES (1,1), (2,2), (3,3);
INSERT INTO table2 VALUES (1,1,1), (2,2,2), (3,3,3);
我需要将所有数据添加到已经存在表的另一个数据库(具有相同的定义)并在其中包含一些数据。必须保留现有数据。
如何在保留这些表之间的关系的同时导出和重新导入这些表?
我的想法是编写一个程序将表导出为 JSON,另一个程序通过插入行并调整外键来重新导入(我主要使用 PHP)。还是我应该使用 Microsoft Excel?但我想还有更简单的方法。
【问题讨论】:
-
应该改变键吗?然后你需要编写一些应用程序来处理这个问题,因为我认为没有工具可以自动为你解析依赖的实体
-
键可以改变,但必须保留行的关系。
-
@Akina 是的。我更新了我的问题。
-
要导入的数据是否会导致唯一性或其他一些约束违规(PK除外)?如果两个数据库包含相同的行 - 这些行是否可以合并为一行?
-
@Akina 需要添加导入的数据。