我需要一种简单的方法来从多个表的SQLite数据库导出数据,然后将它们导入到另一个数据库。
这是我的剧本。我有五张table:A,B,C,D,E.
每个表都有一个主键作为第一列,称为ID。我想要一个Unix命令,将转储只从主键的格式,可以导入到另一个数据库的行中的数据。
我知道我可以
sqlite3 db .dump | grep INSERT
但这给了我表中的所有数据。我不是一个数据库Maven,我试图用所有的unix命令来写shell脚本,而不是写C代码来做这件事(因为人们告诉我这是最简单的方法)。我只是拒绝写C代码来完成一个可能在命令行中用4-5条语句就能完成的任务。
有什么建议吗?
5条答案
按热度按时间eimct9ow1#
这可能看起来有点奇怪,但是你可以给予一个尝试:
创建文本文件,并在其中放置以下语句:
将此文件提供给sqlite3:
结果,您将得到两个文件:一个使用简单的“inserts”(* insert.sql ),另一个使用数据库模式( schema.sql *)。
kknvjkwl2#
建议找一个可以将您的查询导出为CSV的工具。听起来你想要一个剧本。你想重复使用和自动化吗?
对于其他场景,可能考虑sqlite-manager Firefox plugin。它支持运行您的即席查询,并将结果导出为CSV。
在这里面,给予它这样的陈述:
根据需要对每个表重复此操作。
stszievb3#
你可以使用sqlite3 bash。例如,如果你想得到一个表中所有记录的
insert
查询,你可以做以下事情:它将创建一个名为
insert.sql
的文件名,并对给定表中的每个记录进行insert
查询。以下是
insert.sql
中的示例:xfb7svmp4#
你也可以使用SQLite的
quote
函数。fjnneemd5#
例如,您可以使用以下命令仅将
apple.db
中特定表的数据导出到backup.sql
。*.output
创建并选择或只选择一个文件,这取决于文件的存在,您必须退出以关闭文件(例如,.exit
或.quit
),否则SQLite命令的结果将输出到文件: