是否可以将存储在res/raw资源目录中的csv文件用于填充sqlite3数据库中的表?
我的想法是,如果有一种方法可以将整个文件批量导入到表中,那么比迭代文件中的每一行并执行单独的插入语句更简洁,更快......
我发现有一个sqlite import命令允许这样:如何导入将.sql或.csv文件加载到SQLite中?
...但我在Android应用程序中应用这些语句时遇到了问题.我的第一个想法是尝试类似下面的东西......但没有运气:
db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT)");
db.execSQL(".mode csv");
db.execSQL(".import res/raw/MyFile.csv " + TABLE_NAME);
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我应该尝试不同的方法来填充我的数据库吗?
更新:我将Josef的回复标记为答案(使用交易批量插入),因为它工作正常并根据我的标题直接回答我的问题(感谢Josef).但是,我仍在寻找一种方法,使用import语句在csv文件中将Android应用程序批量插入到sqlite3表中.如果你知道怎么做,请回复.
谢谢你的回答!
我有一个.csv文件,我想将这个文件导入到android中的数据库中.
例如,.csv文件:
| id | name | dt1 | dt2 | dt3 |
| 1 | Paul | 21 | 98 | 91 |
| 2 | John | 22 | 44 | 11 |
| 3 | George| 21 | 31 | 22 |
| 4 | Ringo | 20 | 10 | 15 |
Run Code Online (Sandbox Code Playgroud)
对于这样的事情:
Cursor cursor = getWritableDatabase().
rawQuery("Insert into table1(_id, name, dt1, dt2, dt3)
values ( 1, Paul, 21, 98, 91)
values ( 2, John, 22, …Run Code Online (Sandbox Code Playgroud)