SQLite:将表从一个数据库复制到另一个数据库的最简单方法?

use*_*189 9 java sqlite

我有两个sqlite数据库,并希望将数据库A中的表复制到数据库B.不应复制数据库A中的其他表.在Java中最简单的方法是什么?

我可以明确地做一些像A中的Select*然后将所有这些插入到数据库B中,但是不应该有更好的方法吗?

Col*_*Two 15

打开要复制的数据库,然后运行此代码以附加要复制到的数据库,然后复制一个表.

ATTACH DATABASE 'other.db' AS other;

INSERT INTO other.tbl
SELECT * FROM main.tbl;
Run Code Online (Sandbox Code Playgroud)

  • 最后,运行`DETACH other;`. (3认同)

miv*_*ivk 10

为什么要在 Java 中这样做?您可以直接在命令行上执行此操作,方法是转储表并将其读入其他数据库:

sqlite3 A.sqlite ".dump some_table" | sqlite3 B.sqlite
Run Code Online (Sandbox Code Playgroud)

如果您需要先删除“B.sqlite”中的现有表,您可以使用-cmd第二部分中的开关“在读取 stdin 之前运行命令”:

sqlite3 A.sqlite ".dump some_table" \
| sqlite3 -cmd "DROP TABLE IF EXISTS some_table" B.sqlite
Run Code Online (Sandbox Code Playgroud)