将表导入到现有的sqlite数据库android中

时间:2017-08-01 21:27:12

标签: android database sqlite android-sqlite

我处于这样一种情况,即用户拥有一个sqlite数据库,该数据库的数据根本不应被篡改。基本上我想从.csv文件或这些行中的某些东西导入一个表到他们的数据库而不触及任何数据。

我注意到没有库frmo我可以看到明确表示这一点。我对SQLite的了解并不像我想的那样舒服,所以我不确定去哪里。

我应该只读取每行复制数据的文件行,然后将其插入到创建的表中吗?每个表都有400条记录,而不是太多,所以我觉得它不会那么低效。我缺乏经验让我担心我会以某种方式破坏数据。希望在这里防止错误和责任..

1 个答案:

答案 0 :(得分:0)

Here's one way:
  

创建一个没有主键的新临时数据库表(因此您可以在复制之前对其进行验证。)

e.g。

CREATE TABLE salespeopleTMP (
    id INTEGER,
    first_name TEXT NOT NULL,
    last_name TEXT NOT NULL,
    commission_rate REAL NOT NULL
);
  

表中的现有数据如下所示:

sqlite> select * from salespeople;
1|Fred|Flinstone|10.0
2|Barney|Rubble|10.0
  

如果我现在有一个名为people.txt的CSV数据文件,如下所示:

3,John,Doe,5.0
4,Jane,Smith,5.0
  

将CSV数据导入该临时SQLite表

您可以使用以下两个命令将CSV数据导入我的SQLite表:

源码> .separator ','

源码> .import people.txt salespeopleTMP

  

使用INSERT INTO命令从临时数据导入数据   表进入实际表格

insert into salespeople select * from salespeopleTMP 
  

删除临时表salespeopleTMP

基于https://alvinalexander.com/android/sqlite-csv-import-data-table-primary-key

修复的错误