SQLite3でのCSVインポート方法概要
SQLite3でのDB作成コマンド
$ sqlite3 database_name.db
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
sqlite>
以下を流すと開いた際の引数のファイル名でDBが作成される
sqlite> .database
CSVインポートは以下
sqlite> .mode csv
sqlite> .import path/to/file.csv table_name
スクリプト
複数のCSVファイルからテーブルを一気に作りたかったので以下を作成した。
create_sqlite3_with_csv.sh
#!/bin/sh
if [ -p /dev/stdin ]; then
FILES=`cat -`
else
FILES=`echo $@`
fi
# echo ${FILES}
DB_NAME="file.db"
#`sqlite3 ${DB_NAME} ".database"`
FILE_COUNT=`echo $FILES | tr ' ' '\n' | wc -l`
for i in `seq $FILE_COUNT`
do
FILE_PATH=`echo $FILES | cut -d ' ' -f $i`
FILE=${FILE_PATH##*/}
NAME=${FILE%.*}
#echo $FILE_PATH
#echo $NAME
`sqlite3 ${DB_NAME} ".mode csv" ".import ${FILE_PATH} ${NAME}"`
done
シンボリックリンクを作る
$ ln -s create_sqlite3_with_csv.sh /usr/local/bin/create_sqlite3_with_csv
使い方
$ create_sqlite3_with_csv path/to/*.csv
で、path/to フォルダにあるCSVファイルを元に、
コマンドを流した直下に file.db というファイル名のSQLite3のDBが作成する。