我不确定这是针对您的情况处理它的最佳方法,但是使用触发器可以提供解决方案。
我使用了名为 data.csv 的文件中的以下数据
数据.csv
1,datetime(),Row1
2,datetime(),Row2
3,datetime(),Row3
4,datetime(),Row4
5,datetime(),Row5
6,datetime(),Row6
7,datetime(),Row7
8,datetime(),Row8
9,datetime(),Row9
...并使用“.read demo.sql”运行以下脚本,该脚本删除/重新创建模式对象,设置数据文件分隔符,运行导入,然后从“演示”表中选择。
演示.sql
drop table demo;
create table demo (
id integer,
dt text,
tag text
);
create trigger my_trigger after insert on demo
begin
update demo set dt = datetime() where dt = 'datetime()';
end;
delete from demo;
.sep ","
.imp data.csv demo
select * from demo;
并在导入操作后在演示表中产生了以下结果。
$ sqlite3 my.db
SQLite version 3.8.0.2 2013-09-03 17:11:13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .read demo.sql
Error: near line 1: no such table: demo
1,2013-10-09 23:47:14,Row1
2,2013-10-09 23:47:14,Row2
3,2013-10-09 23:47:14,Row3
4,2013-10-09 23:47:14,Row4
5,2013-10-09 23:47:14,Row5
6,2013-10-09 23:47:14,Row6
7,2013-10-09 23:47:14,Row7
8,2013-10-09 23:47:14,Row8
9,2013-10-09 23:47:14,Row9
注意:我在 WinXP 上运行最新的 SQLite3 二进制文件。