【问题标题】:Import .sql file to Sqlite database in Android将 .sql 文件导入 Android 中的 Sqlite 数据库
【发布时间】:2014-04-06 06:21:59
【问题描述】:

在我的 android 应用中,现有数据库使用来自资产。

假设我在资产文件夹中有一个数据库,名称是“a.sqlite”。它有一个名为“t”的表。我想从我的服务器下载一个名为“t2.sql”的表。 下载“t2.sql”后,我想以编程方式将“t2”表的所有值插入到“t”表中

假设这是主数据库表

| 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  | 

我想把这个 sql 表插入到主表中

| id | name   | dt1 | dt2 | dt3 | 
| 1  | Paul_2  | 21  | 98  | 91  |
| 2  | John_2  | 22  | 44  | 11  |
| 3  | George_2| 21  | 31  | 22  |
| 4  | Ringo_2 | 20  | 10  | 15  | 

我的 sql 表也有 CREATE TABLE 语句和 BEGIN TRANSACTION/COMMIT 语句。这应该很容易,因为在 Firefox SQLite 管理器中我只使用导入,并且该表加入了我的数据库。但是我不知道在android中我能做什么

【问题讨论】:

  • 您可以为您拥有的任何值创建一个批量插入,并通过编写 sql 并首先创建表将其直接映射到 t2 表。如果你能给我一个带有一些虚拟属性的示例表,我会告诉你如何做到这一点。
  • 艾哈迈德我已添加到问题中

标签: android sql sql-server sqlite


【解决方案1】:

我从您的问题中了解到,您希望将所有值从一个表映射到另一个表。为此,您必须先从该表中获取所有值,然后将其转储到另一个表中。

首先您需要从表 t2.sql 中获取值。现在我假设您知道如何使用 t2.sql 文件来获取表实体和数据。一旦你得到了,你只需要在 t1 中批量插入记录。

通过下面的sn-p(伪代码)批量插入所有值,

try
{
  db.beginTransaction();
  for each record in the list
  {
    do_some_processing();
    if (line represent a valid  entry)
    {
      db.insert(TABLE_T1, null, SOME_VALUE);
    }
    some_other_processing();
  }
  db.setTransactionSuccessful();
}
catch (SQLException e) {}
finally
{
  db.endTransaction();
}

希望这对您有所帮助。如果您需要我详细说明,请告诉我

【讨论】:

  • 好的,我知道了。你说创建一个列表并用“t2.sql”填充它并将所有列表插入“t table”。但我不知道 t2.sql 是从服务器下载的一点,它与我的数据库是分开的。那么如何调用和使用它。我可以像 .csv 文件一样使用它吗?
  • 以下链接将帮助您了解如何进行批量插入 notes.theorbis.net/2010/02/…
  • 你能做到吗?
  • 否 :( 还没有。我正在尝试
猜你喜欢
  • 2016-01-21
  • 2012-11-08
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多