2017-05-07 5 views
0

シェルスクリプト内に2つのsqlite dbを添付し、エイリアスでスクリプト操作をどのようにしますか?SQLiteはシェルスクリプトを使用して1つのデータベースから別のデータベースにデータをコピーします

例:sqlite3シェルから2つの異なるDBを付けて、db1とdb2と言うようにしてから使用してください: db2.table1(column1)に挿入db1.table1からcolumn1を選択します。 を使用して、db1の特定の表からdb2の特定の表に1つの列をコピーします。 しかし、シェルスクリプト内でこれをどうやって行うのですか?

+0

あなたがSQLコマンド文字列を構築する方法がわからない、またはどのようにそれらを 'sqlite3'に与えますか? –

+0

私はsqlite3シェルから必要なものをすべて手に入れることができますし、シェルスクリプトから選択と挿入を実行することもできますが、データベースのテーブルから別のデータベースのテーブルにデータを移動する方法db、すべてはシェルスクリプトの中からです。 – 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

関連する問題