arrays - 从 BASH 数组创建 SQLite3 表

标签 arrays linux bash sqlite

我正在尝试从 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/

相关文章:

javascript - JSON 数组可以包含不同键/值对的对象吗?

arrays - 如何循环遍历 JSONb 字段中包含的数组?

C# 将字符串行拆分为多个字符串

c++ - 文件何时真正写入磁盘?是否保证在 std::ofstream 被破坏后立即将文件写入磁盘?

linux - 拼接系统调用,传递给管道的是什么?数据或行踪信息?

c - Linux : Creating a simple non-blocking server and client to communicate over named pipes

linux - 在 shell 脚本中使用 cd 和 cd - 命令在另一个目录中进行某些计算是一个好方法吗

javascript - 如何在javascript中将数据从旧json复制到新json?

bash - 命令输出和字符串比较

python - 在 Python 中创建可执行符号链接(symbolic link)?