我正在尝试从 bash 中的数组创建一个表。我已经弄清楚如何让它从文本文件创建数组,但是创建表要么不起作用,要么只使用数组中的最后一个值。我是否正在尝试做一些不可能的事情?
我的脚本:
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
我也尝试过 WHERE tblB.D="${array[@]}";
已编辑以包含整个 SQL 代码。
最佳答案
问题是该表在每次循环迭代中都会重新创建(即清空)。
仅创建该表一次。在循环内,仅执行 INSERT。
关于arrays - 从 BASH 数组创建 SQLite3 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40936869/