.import
不支持對輸入進行整形(設置分隔符除外)。您需要將CSV文件導入臨時表並將其插入真正的表中。以下是一個示例會話:
$ cat a.csv
1,2
3,4
5,6
$ sqlite3 a.db
SQLite version 3.6.23.1
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table foo(id integer primary key,x,y);
sqlite> create temp table footmp(x,y);
sqlite> .separator ,
sqlite> .import a.csv footmp
sqlite> select * from footmp;
1,2
3,4
5,6
sqlite> insert into foo(x,y) select * from footmp;
sqlite> select * from foo;
1,1,2
2,3,4
3,5,6
sqlite> drop table footmp;
您會看到該ID已經過計數。這是因爲一個類型爲INTEGER PRIMARY KEY的列被視爲內部ROWID的別名 - 它始終是一個唯一的升序編號。