将表和列的子集复制到新的数据库文件中



我有一个数据库A.db,其中包含t1t2t3表。 现在我想创建一个新的数据库B.db,其中包含t1和一些选定的列col1col4来自t2

有了.import,我得到了数百个错误,它似乎仅适用于完整的表。

.output听起来我只是将输出保存为打印输出。

基本上,我需要跨不同文件insert into foo select ...。我该怎么做?

首先,您必须将A.db附加到当前数据库并为其指定一个别名,例如adb
然后编写 insert 语句,就像所有表都存在于同一个数据库中一样,使用数据库别名限定列名。

最好在insert into...语句的括号内包含表的所有列名,foo要从其他 2 个表中设置值,但也要确保列的顺序与选择列表中列的顺序相同:

attach database 'pathtoAdatabase/A.db' as adb;
insert into foo (column1, column2, .......)
select adb.t1.column1, adb.t1.column2, ...., adb.t2.col1, adb.t2.col4
from adb.t1 inner join adb.t2
on <join condition>

<join condition>替换为您将连接 2 个表的条件,以使您将插入foo的行,如下所示:

adb.t1.id = adb.t2.id

最新更新