sqlite-将表和列的子集复制到新的db文件中
我有一个数据库sqlite-将表和列的子集复制到新的db文件中,sqlite,Sqlite,我有一个数据库a.db,其中包含表t1、t2和t3。 现在我想创建一个新的数据库B.db,它包含t1和一些从t2中选择的列col1和col4 使用.import我会收到数百个错误,而且似乎只对完整的表有效 .output听起来好像我只是将输出保存为打印时的样子 基本上,我需要在不同的文件中插入一个到fooselect…。我如何才能做到这一点?首先,您必须将A.db附加到当前数据库,并给它一个别名,如adb 然后编写insert语句,就像在同一数据库中存在所有表一样,使用数据库别名限定列名。 在i
a.db
,其中包含表t1
、t2
和t3
。
现在我想创建一个新的数据库B.db
,它包含t1
和一些从t2
中选择的列col1
和col4
使用.import
我会收到数百个错误,而且似乎只对完整的表有效
.output
听起来好像我只是将输出保存为打印时的样子
基本上,我需要在不同的文件中插入一个
到fooselect…
。我如何才能做到这一点?首先,您必须将A.db
附加到当前数据库,并给它一个别名,如adb
然后编写insert语句,就像在同一数据库中存在所有表一样,使用数据库别名限定列名。
在
insert-into…
语句的括号内包含表foo
的所有列名是一种很好的做法,您可以为这些列名设置其他两个表中的值,但也要确保列的顺序与选择列表中列的顺序相同: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>
adb.t1.id = adb.t2.id