我试图通过将一个 SQLite 表的内容转储到另一个表中来合并两个 SQLite 表。但是,每次我尝试执行此操作时,都会引发语法错误,指出“[SQLITE_ERROR] SQL 错误或丢失数据库(靠近“sqlite3”:语法错误)”
conn是原始数据库的连接,我发送所有sql命令。 newConn是要合并的数据库的连接。
如何解决这个问题?预先感谢您!
编辑:我只是想确保这不会因为重复而被关闭。我使用了here中的sql代码,但它仍然会引起问题。
newConn = DriverManager.getConnection("jdbc:sqlite:" + path);
String sqlMerge = "sqlite3 ? .dump";
conn.setAutoCommit(false);
PreparedStatement pstmt1 = conn.prepareStatement(sqlMerge);
pstmt1.setString(1, newConn.getCatalog());
pstmt1.executeUpdate();
conn.commit();
最佳答案
.dump
是 SQLite 命令行 shell 的一项功能。 SQL 语言的 SQLite 方言无法识别它。您可以从 Java 中调用命令行 shell,也可以通过 JDBC 使用实际 SQL 命令(读取数据)和 Java 文件操作(写入所需的转储文件)执行等效操作。
关于java - 为什么我不能将 .dump 命令与 JDBC 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49020068/