我有两个SQLite数据库,并且希望将一个表从数据库A复制到数据库B。不应该复制数据库A中的其他表。在Java中实现这一点最简单的方法是什么?我可以明确地执行类似于从A中选择*的操作,然后将所有这些内容插入到数据库B中,但难道没有更好的方法吗?
7ajki6be1#
打开要从中复制的数据库,然后运行此代码以附加要复制到的数据库,然后复制表。
ATTACH DATABASE 'other.db' AS other; INSERT INTO other.tbl SELECT * FROM main.tbl;
ahy6op9u2#
为什么要在Java中这样做?您可以直接在命令行中执行此操作,方法是转储您的表并将其读取到您的其他数据库中:
sqlite3 A.sqlite ".dump some_table" | sqlite3 B.sqlite
如果您需要先删除“B.sqlite”中已有的表,可以使用第二部分中的-cmd开关,以“在读取stdin之前运行命令”:
-cmd
sqlite3 A.sqlite ".dump some_table" \ | sqlite3 -cmd "DROP TABLE IF EXISTS some_table" B.sqlite
2条答案
按热度按时间7ajki6be1#
打开要从中复制的数据库,然后运行此代码以附加要复制到的数据库,然后复制表。
ahy6op9u2#
为什么要在Java中这样做?您可以直接在命令行中执行此操作,方法是转储您的表并将其读取到您的其他数据库中:
如果您需要先删除“B.sqlite”中已有的表,可以使用第二部分中的
-cmd
开关,以“在读取stdin之前运行命令”: