2017-05-07 95 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

相關問題