【问题标题】:detach sqlite database in java在java中分离sqlite数据库
【发布时间】:2017-07-18 05:59:03
【问题描述】:

我想在附加新的 sqlite 数据库之前分离当前的 sqlite 数据库(旧)。但是当我执行下面的代码时:

Statement statement = connection.createStatement();
statement.execute("DETACH database '" + alias+"'");
statement.close();**

我收到以下错误:

java.sql.SQLException: [SQLITE_ERROR] SQL 错误或缺少数据库(没有这样的数据库:OLD)

我已使用以下代码附加数据库:

SQLiteDataSource dataSource = new SQLiteDataSource();
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
statement.execute("ATTACH DATABASE '" + path + "' AS " + alias);
statement.close();**

谁能帮我看看我哪里做错了?

【问题讨论】:

  • 如果我尝试对 NEW 和 OLD 数据库独立执行任何查询,它们可以正常工作并获得 NEW 和 OLD 所需的所有结果集。但是当我将它们放在相同的代码中并查询它们时(首先附加新的数据库文件,查询它,然后附加旧的,然后查询旧的),我在旧的结果集中得到重复的数据。所以我想在查询 OLD 之前分离 NEW
  • 您是否尝试过在别名周围不加单引号(如文档中所述)?
  • @DawoodibnKareem 是的,我试过了 1.statement.execute("DETACH database '" + alias+"'"); 2.statement.execute("DETACH database " + alias); 3.statement.execute("DETACH '" + alias+"'"); 4.statement.execute("DETACH " + alias); 它们都给出了相同的错误:(
  • @user7294900 你能告诉我如何用 PATH 分离
  • 你使用的是同一个连接对象吗?

标签: java sqlite detach sqlitejdbc


【解决方案1】:

通过每次我调用初始化数据库连接的方法时创建新引用来解决问题:)

【讨论】:

    猜你喜欢
    • 2012-02-07
    • 2012-10-19
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2017-01-06
    • 1970-01-01
    相关资源
    最近更新 更多