【发布时间】:2021-06-13 21:41:52
【问题描述】:
我有这个 shell 脚本,它接受一组 INSERT 语句并在开始时放置一个“BEGIN TRANSACTION”,在最后放置一个“COMMIT”。有 很多 个 INSERT 语句,因此插入速度更快。
我使用成功的脚本是这样的
file_name_improved_sql=foo-improved.sql
file_name_original_sql=foo.sql
file_name_sqlite_db=bar.db
path_to_insert_error=/tmp/fooerrors.log
#
echo 'BEGIN TRANSACTION;' | cat - $file_name_original_sql > $file_name_improved_sql
echo "COMMIT;" >> $file_name_improved_sql
#
cat $file_name_improved_sql | sqlite3 $file_name_sqlite_db 2> $path_to_insert_error
我想对此进行改进,以便直接通过管道输入两个字符串和文件内容,而不是生成中间文件 file_name_improved_sql。
类似的东西(除了这个不起作用)......
export string1="BEGIN TRANSACTION"
export string2="COMMIT"
cat $string1 $file_name_improved_sql $string2 | sqlite3 $file_name_sqlite_db 2> $path_to_insert_error
如果有任何建议,将不胜感激。
【问题讨论】: