Import sqlite:如果列数不相等,如何将csv文件导入表中?

Import sqlite:如果列数不相等,如何将csv文件导入表中?,import,sqlite,Import,Sqlite,我在sqlite数据库中有一个空表,表的第一列是autoincrement主键。我想导入一个没有id的csv文件,即:它的列数与表的列数相同,但只有一个(id)。如何将csv文件中的值导入表的相应列中 下面是一个模拟示例(Windows 7,DOS): 谢谢你的帮助 更新:有没有办法避免使用临时表?使用Tab0作为临时表,您应该从中插入到tab1中 INSERT INTO tab1(va, vb) SELECT * FROM tab0; 查看此答案使用Tab0作为临时表,从中插入tab1 IN

我在sqlite数据库中有一个空表,表的第一列是autoincrement主键。我想导入一个没有id的csv文件,即:它的列数与表的列数相同,但只有一个(id)。如何将csv文件中的值导入表的相应列中

下面是一个模拟示例(Windows 7,DOS):

谢谢你的帮助


更新:有没有办法避免使用临时表?

使用Tab0作为临时表,您应该从中插入到tab1中

INSERT INTO tab1(va, vb) SELECT * FROM tab0;

查看此答案

使用Tab0作为临时表,从中插入tab1

INSERT INTO tab1(va, vb) SELECT * FROM tab0;

查看此答案

您可以使用tab0填充tab1

差不多

INSERT INTO tab1( va,vb )
SELECT  va, vb
FROM    tab0

应该有用

您可以使用tab0填充tab1

差不多

INSERT INTO tab1( va,vb )
SELECT  va, vb
FROM    tab0

应该有用

您可以将autoincrement字段移动到表的末尾,在导入时,缺少的值将被null替换,从而被autoincrement值替换(“非null”是隐含的,因此您不需要它):


您可以将autoincrement字段移动到表的末尾,在导入时,缺少的值将替换为null,从而替换为autoincrement值(“不为null”,因此您不需要它):


它起作用了。谢谢我的解决方法是使用一个临时表,但我想知道是否有办法避免这种情况。它是有效的。谢谢我的解决方法是使用临时表,但我想知道是否有办法避免这种情况。谢谢。目前我使用这种变通方法。我很好奇是否有可能避开这张临时桌子。谢谢。目前我使用这种变通方法。我很好奇是否有可能避免这张临时桌子。谢谢,我学到了一些新东西。但是很明显,没有办法控制列,使主键保留在第一列上。你是什么意思?您不能在数据库中创建或更改表?在这种情况下,我可以更改表,但我想知道是否有办法确定表的结构,以及csv文件中列的顺序是否与表不一致。谢谢,我学到了一些新知识。但是很明显,没有办法控制列,使主键保留在第一列上。你是什么意思?您不能在数据库中创建或更改表?在这种情况下,我可以更改表,但我想知道是否有办法确定表的结构以及csv文件中列的顺序是否与表不一致。