2017-05-07 242 views
0

如何将两个sqlite数据库附加到shell脚本和脚本操作以及它们的别名?例如:从sqlite3 shell我可以附加两个不同的dbs,让我们说db1和db2,然后使用: insert into db2.table1(column1)从db1.table1中选择column1; 将db1上的特定表中的一列复制到db2上的特定表中。 但是,如何在shell脚本中执行同样的操作?SQLite使用shell脚本将数据从一个数据库复制到另一个数据库

+0

难道你不知道如何构造SQL命令字符串,或如何给他们'sqlite3'? –

+0

我想我可以,我可以做所有我需要从sqlite3外壳,我也可以执行选择和插入从外壳脚本,但我还没有找到如何将数据从一个数据库表上移动到另一个表上db,全部来自shell脚本。 – Dotty

+0

显示你有什么,以及你卡在哪里。 –

回答

3

为了让多条线路到另一个程序的输入,你可以从一个临时文件重定向,或从here document

sqlite3 "" <<EndOfSqlite3Commands 
ATTACH 'database1.db' AS db1; 
ATTACH 'database2.db' AS db2; 
INSERT INTO db2.table1(column1) SELECT column1 FROM db1.table1; 
EndOfSqlite3Commands 
+0

错误:在第4行附近:“EndOfSqlite3Commands”附近:语法错误 – Dotty

+0

我只是把你的建议放在脚本里面,然后运行它。并得到上述错误 – Dotty

+0

我的不好,我把一个“;”最后,错误地。现在测试整个脚本。 – Dotty

相关问题