bashの配列からテーブルを作成しようとしています。私はそれをテキストファイルから配列を作成する方法を考え出したが、テーブルを作成することは機能しないか、配列の最後の値しか使用しない。私はできないことをしようとしていますか?BASHアレイからSQLite3テーブルを作成
マイスクリプト:
readarray -t array < file.txt
for e in "${array[@]}"
do
DB_PATH=""
DB_NAME=$DB_PATH"Test.db"
sqlite3 $DB_NAME << EOF
DROP TABLE IF EXISTS tblA;
CREATE TABLE tblA(A,B,C);
INSERT INTO tblA (A,B) SELECT tblB.A,tblB.B,1 FROM tblB WHERE tblB.D="$e";
EOF
done
私はまた、全体のSQLコードを含めるように編集WHERE tblB.D="${array[@]}";
を試してみました。
を私はSQLには専門家でないが、あなたは、テーブルをドロップした場合、私はドン」あなたがテーブルを落としたなら、何もどこにもないので、あなたは 'INSERT ... WHERE'を実行できると信じています。 WHEREとINSERTを一緒に使用することはできません。 –
@ MarkSetchell古いテーブルは削除され、新しい配列値で再作成されます。 WHEREステートメントはINSERTで動作しますが、この場合は動作しません。配列の各値を特にtblB.D = "$ {array [0]}"または "tblB.D =" $ {array [1]} "などのように呼び出すと動作します。しかし、配列に100以上の値がある場合には特に呼び出す必要はありません。 – taylorbuckeye
あなたの完全なコードを表示するかもしれないので、私は理解することができます... –