将多个结构相同的sqlite数据库组合在一起



我在localhost上托管了多个结构相同的sqlite数据库。我需要将所有数据添加到一个数据库中。数据可能具有相同的PK,因此重要的是不要替换数据,而只添加新数据并在需要时分配新的PK。

唯一可行的方法是将主键定义为INTEGER PRIMARY KEY,并且无需创建和更新临时表

附加db2后,执行以下语句:

INSERT INTO mytable(col1, col2, ....) 
SELECT col1, col2, .... 
FROM db2.mytable;

通过枚举除主键之外的所有列,您将在mytable中插入db2.mytable的所有行,并为其主键列分配一个新值。

首先附加db2,然后:

CREATE TEMPORARY TABLE tmp AS SELECT * FROM db2.mytable;
UPDATE tmp SET id = NULL;
INSERT  INTO mytable SELECT * FROM tmp;
DROP TABLE tmp;

最新更新